The length check never used the mesh_iface length in the size calculation. Instead it used the length of the mountpoint and the format string. But the length of the format string is not the length of the final string.
Instead remove this check and depend completely on the return value of snprintf.
Signed-off-by: Sven Eckelmann sven@narfation.org --- debugfs.c | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-)
diff --git a/debugfs.c b/debugfs.c index 6404b49..fc39322 100644 --- a/debugfs.c +++ b/debugfs.c @@ -46,19 +46,12 @@ static const char *debugfs_known_mountpoints[] = { int debugfs_make_path(const char *fmt, const char *mesh_iface, char *buffer, int size) { - int len; - if (strlen(debugfs_mountpoint) == 0) { buffer[0] = '\0'; return -1; }
- len = strlen(debugfs_mountpoint) + strlen(fmt) + 1; - if (len >= size) - return len+1; - - snprintf(buffer, size-1, fmt, debugfs_mountpoint, mesh_iface); - return 0; + return snprintf(buffer, size, fmt, debugfs_mountpoint, mesh_iface); }
static int debugfs_found;