summaryrefslogtreecommitdiffstats
path: root/libmount/src/utils.c
diff options
context:
space:
mode:
authorSami Kerola2014-11-09 16:26:05 +0100
committerKarel Zak2014-11-18 12:56:05 +0100
commite3c27186e86e964d1b0b6aab7e52c598c3f1ba97 (patch)
tree74044c6c2e629ad4c37ce028b6545a75fc722a5b /libmount/src/utils.c
parenttests: fix memory leak [AddressSanitizer] (diff)
downloadkernel-qcow2-util-linux-e3c27186e86e964d1b0b6aab7e52c598c3f1ba97.tar.gz
kernel-qcow2-util-linux-e3c27186e86e964d1b0b6aab7e52c598c3f1ba97.tar.xz
kernel-qcow2-util-linux-e3c27186e86e964d1b0b6aab7e52c598c3f1ba97.zip
libmount: fix memory overflow [AddressSanitizer]
==10918==ERROR: AddressSanitizer: stack-buffer-overflow on address 0x7fffd795b680 at pc 0x0000004447c6 bp 0x7fffd795b3e0 sp 0x7fffd795ab78 WRITE of size 129 at 0x7fffd795b680 thread T0 #0 0x4447c5 in scanf_common(void*, int, bool, char const*, __va_list_tag*) (/home/src/util-linux/.libs/lt-mount+0x4447c5) #1 0x445892 in sscanf (/home/src/util-linux/.libs/lt-mount+0x445892) #2 0x7fe78709a3d3 in get_filesystems /home/src/util-linux/libmount/src/utils.c:581:7 #3 0x7fe78709a1ba in mnt_get_filesystems /home/src/util-linux/libmount/src/utils.c:622:7 #4 0x7fe7870aa78f in do_mount_by_pattern /home/src/util-linux/libmount/src/context_mount.c:833:7 #5 0x7fe7870a9534 in mnt_context_do_mount /home/src/util-linux/libmount/src/context_mount.c:951:9 #6 0x7fe7870aab2b in mnt_context_mount /home/src/util-linux/libmount/src/context_mount.c:1051:8 #7 0x4ba9f5 in main /home/src/util-linux/sys-utils/mount.c:1107:7 #8 0x7fe785caa03f in __libc_start_main (/usr/lib/libc.so.6+0x2003f) #9 0x4b9f9c in _start (/home/src/util-linux/.libs/lt-mount+0x4b9f9c) Signed-off-by: Sami Kerola <kerolasa@iki.fi> Signed-off-by: Karel Zak <kzak@redhat.com>
Diffstat (limited to 'libmount/src/utils.c')
-rw-r--r--libmount/src/utils.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/libmount/src/utils.c b/libmount/src/utils.c
index 456a898ed..02f9e109b 100644
--- a/libmount/src/utils.c
+++ b/libmount/src/utils.c
@@ -565,7 +565,7 @@ static int get_filesystems(const char *filename, char ***filesystems, const char
{
int rc = 0;
FILE *f;
- char line[128];
+ char line[129];
f = fopen(filename, "r" UL_CLOEXECSTR);
if (!f)