]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
basic/process-util: we need to take the shorter of two strings
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Fri, 18 Nov 2016 01:57:22 +0000 (20:57 -0500)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Fri, 18 Nov 2016 01:57:22 +0000 (20:57 -0500)
==30496== Conditional jump or move depends on uninitialised value(s)
==30496==    at 0x489F654: memcmp (vg_replace_strmem.c:1091)
==30496==    by 0x49BF203: getenv_for_pid (process-util.c:678)
==30496==    by 0x4993ACB: detect_container (virt.c:442)
==30496==    by 0x182DFF: test_get_process_comm (test-process-util.c:98)
==30496==    by 0x185847: main (test-process-util.c:368)
==30496==

src/basic/process-util.c

index 48a5c719af0a6feb83f0304a6b6dea5421d6249b..1f4c2e4e43d4f3ace7c7fffdadbd94118296b278 100644 (file)
@@ -675,7 +675,7 @@ int getenv_for_pid(pid_t pid, const char *field, char **_value) {
                 }
                 line[i] = 0;
 
-                if (memcmp(line, field, l) == 0 && line[l] == '=') {
+                if (strneq(line, field, l) && line[l] == '=') {
                         value = strdup(line + l + 1);
                         if (!value)
                                 return -ENOMEM;