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 04e47e9..3c58195 100644 --- a/debugfs.c +++ b/debugfs.c @@ -42,19 +42,12 @@ static const char *debugfs_known_mountpoints[] = { /* construct a full path to a debugfs element */ int debugfs_make_path(const char *fmt, 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;
On Monday, December 14, 2015 15:00:47 Sven Eckelmann wrote:
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(-)
Applied in revision 72b9683.
Thanks, Marek
b.a.t.m.a.n@lists.open-mesh.org