Summary: | SEGV | ||
---|---|---|---|
Product: | Sisyphus | Reporter: | at <at> |
Component: | grep | Assignee: | placeholder <placeholder> |
Status: | CLOSED FIXED | QA Contact: | qa-sisyphus |
Severity: | blocker | ||
Priority: | P2 | CC: | glebfm, ldv, placeholder |
Version: | unstable | ||
Hardware: | all | ||
OS: | Linux |
Description
at@altlinux.org
2006-08-31 10:21:15 MSD
$ egrep -m9 -A1 '( error:|Command not found)' /raid/beehive/error/kdebase-3.5.3-alt3 >/dev/null $ egrep -m10 -A1 '( error:|Command not found)' /raid/beehive/error/kdebase-3.5.3-alt3 >/dev/null Segmentation fault $ egrep -m11 -A1 '( error:|Command not found)' /raid/beehive/error/kdebase-3.5.3-alt3 >/dev/null С наскока не зафиксилось...
x86_64$ grep -F -c ' error:' kdebase-3.5.3-alt3.log
10
x86_64$ valgrind ./grep -E -m10 -A1 '( error:|zz )' <kdebase-3.5.3-alt3.log
>/dev/null
==1234== Memcheck, a memory error detector.
==1234== Copyright (C) 2002-2006, and GNU GPL'd, by Julian Seward et al.
==1234== Using LibVEX rev 1606, a library for dynamic binary translation.
==1234== Copyright (C) 2004-2006, and GNU GPL'd, by OpenWorks LLP.
==1234== Using valgrind-3.2.0, a dynamic binary instrumentation framework.
==1234== Copyright (C) 2000-2006, and GNU GPL'd, by Julian Seward et al.
==1234== For more details, rerun with: -v
==1234==
==1234== Use of uninitialised value of size 8
==1234== at 0x40D161: dfaexec (dfa.c:2915)
==1234== by 0x411B4D: EGexecute (search.c:392)
==1234== by 0x403276: prpending (grep.c:631)
==1234== by 0x4039F8: grep (grep.c:838)
==1234== by 0x403D7F: grepfile (grep.c:954)
==1234== by 0x4055F1: main (grep.c:1778)
==1234==
==1234== Invalid read of size 1
==1234== at 0x40D153: dfaexec (dfa.c:2915)
==1234== by 0x411B4D: EGexecute (search.c:392)
==1234== by 0x403276: prpending (grep.c:631)
==1234== by 0x4039F8: grep (grep.c:838)
==1234== by 0x403D7F: grepfile (grep.c:954)
==1234== by 0x4055F1: main (grep.c:1778)
==1234== Address 0x5090EE1 is 0 bytes after a block of size 69,633 alloc'd
==1234== at 0x4B1A98E: malloc (vg_replace_malloc.c:149)
==1234== by 0x414146: xmalloc (xmalloc.c:87)
==1234== by 0x40280C: fillbuf (grep.c:357)
==1234== by 0x403B11: grep (grep.c:866)
==1234== by 0x403D7F: grepfile (grep.c:954)
==1234== by 0x4055F1: main (grep.c:1778)
==1234==
==1234== Process terminating with default action of signal 11 (SIGSEGV)
Нашёл testcase поменьше: $ printf 'a1\na\n' |grep -E -m1 -A1 '(a1|b)' a1 Segmentation fault Ещё меньше: $ printf 'a\nb\n' |env -i grep -m1 -A1 '[a]' a Segmentation fault Fixed in 2.5.1a-alt2. Ура! |