From 35dd99f61fee8cf2b93d4d3ab80c22f4808e2ecf Mon Sep 17 00:00:00 2001 From: =?utf8?q?Elan=20Ruusam=C3=A4e?= Date: Tue, 23 May 2006 19:04:09 +0000 Subject: [PATCH] - fix null pointer dereference on 'number' parameter. recent lvm2 (lvm2-2.02.06) could call _get_proc_number() having it NULL: Breakpoint 2, _get_proc_number (file=0xb7f97a08 "/proc/devices", name=0xb7f97a03 "misc", number=0xbffc4abc) Breakpoint 2, _get_proc_number (file=0xb7f97a24 "/proc/misc", name=0xb7f97a16 "device-mapper", number=0xbffc4ab8) Breakpoint 2, _get_proc_number (file=0xb7f97a08 "/proc/devices", name=0xb7f97a16 "device-mapper", number=0x0) so just don't touch 'number' variable for temporary storage. Changed files: device-mapper-klibc.patch -> 1.4 --- device-mapper-klibc.patch | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/device-mapper-klibc.patch b/device-mapper-klibc.patch index 5601154..3503c85 100644 --- a/device-mapper-klibc.patch +++ b/device-mapper-klibc.patch @@ -83,7 +83,7 @@ diff -urN device-mapper.1.02.05.org/lib/ioctl/libdm-iface.c device-mapper.1.02.0 + size++; + } while (num > 0 && buf[size - 1] != '\n'); + buf[size] = '\0'; -+ if (sscanf(buf, "%d %255s\n", number, &nm[0]) == 2) { ++ if (sscanf(buf, "%d %255s\n", &num, &nm[0]) == 2) { if (!strcmp(name, nm)) { if (number) { *number = num; @@ -96,7 +96,7 @@ diff -urN device-mapper.1.02.05.org/lib/ioctl/libdm-iface.c device-mapper.1.02.0 - } while (c != EOF && c != '\n'); - } + } -+ } while (num > 0); ++ } while (size > 0); fclose(fl); if (number) { -- 2.44.0