chiark / gitweb /
Decrease buffer size when advancing past NUL byte
authorDavid Zeuthen <davidz@redhat.com>
Tue, 2 Mar 2010 22:06:33 +0000 (17:06 -0500)
committerDavid Zeuthen <davidz@redhat.com>
Tue, 2 Mar 2010 22:06:33 +0000 (17:06 -0500)
Otherwise we'll overflow the buffer if space is tight. Also add a comment explaining this.

Signed-off-by: David Zeuthen <davidz@redhat.com>
libudev/libudev-device.c

index 71fc775..4f42aa2 100644 (file)
@@ -1166,7 +1166,9 @@ static int update_envp_monitor_buf(struct udev_device *udev_device)
                l = util_strpcpyl(&s, l, key, "=", udev_list_entry_get_value(list_entry), NULL);
                if (l == 0)
                        return -EINVAL;
                l = util_strpcpyl(&s, l, key, "=", udev_list_entry_get_value(list_entry), NULL);
                if (l == 0)
                        return -EINVAL;
+               /* advance past the trailing '\0' that util_strpcpyl() guarantees */
                s++;
                s++;
+               l--;
        }
        udev_device->envp[i] = NULL;
        udev_device->monitor_buf_len = s - udev_device->monitor_buf;
        }
        udev_device->envp[i] = NULL;
        udev_device->monitor_buf_len = s - udev_device->monitor_buf;