diff options
author | David Zeuthen <davidz@redhat.com> | 2010-03-02 17:06:33 -0500 |
---|---|---|
committer | David Zeuthen <davidz@redhat.com> | 2010-03-02 17:06:33 -0500 |
commit | ecd42de2c56b4fcf0069b8b4a4d6607710e5de61 (patch) | |
tree | dce28b5ed62ed770499f76d4feb186a0155d04f6 /libudev/libudev-device.c | |
parent | da96a11b9c9164447bef206db47c405342ab8daa (diff) |
Decrease buffer size when advancing past NUL byte
Otherwise we'll overflow the buffer if space is tight. Also add a comment explaining this.
Signed-off-by: David Zeuthen <davidz@redhat.com>
Diffstat (limited to 'libudev/libudev-device.c')
-rw-r--r-- | libudev/libudev-device.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/libudev/libudev-device.c b/libudev/libudev-device.c index 71fc775242..4f42aa2810 100644 --- a/libudev/libudev-device.c +++ b/libudev/libudev-device.c @@ -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; + /* advance past the trailing '\0' that util_strpcpyl() guarantees */ s++; + l--; } udev_device->envp[i] = NULL; udev_device->monitor_buf_len = s - udev_device->monitor_buf; |