Date: Mon, 10 Dec 2001 20:19:00 -0800 (PST) From: Koga Youichirou <y-koga@jp.FreeBSD.org> To: freebsd-gnats-submit@FreeBSD.org Subject: bin/32686: locate command dumps a core file with broken database Message-ID: <200112110419.fBB4J0M07643@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 32686
>Category: bin
>Synopsis: locate command dumps a core file with broken database
>Confidential: no
>Severity: serious
>Priority: high
>Responsible: freebsd-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Mon Dec 10 20:20:01 PST 2001
>Closed-Date:
>Last-Modified:
>Originator: Koga Youichirou
>Release: FreeBSD 4.4-STABLE
>Organization:
The FreeBSD Project (Japan)
>Environment:
FreeBSD xxx 4.4-STABLE FreeBSD 4.4-STABLE #2: Tue Dec 4 13:42:07 JST 2001 root@xxx:/path/to/src/sys/ XXX i386
>Description:
locate command assumes that a database file is perfect,
but it dumps a core file with a broken database.
I don't think it should not dump a core file
even if it uses a broken database.
>How-To-Repeat:
% cat /var/db/locate.db ~/somefile >locate.db
% locate -d ./locate.db word
(some search results)
Segmentation fault (core dumped)
>Fix:
I think a check routine is needed in locate/fastfind.c near...:
290 if (*s == cc
291 #ifdef FF_ICASE
292 || TOLOWER(*s) == cc
293 #endif /* FF_ICASE */
294 ) { /* fast first char check */
295 for (p = patend - 1, q = s - 1; *p != '\0';
296 p--, q--)
297 if (*q != *p
298 #ifdef FF_ICASE
299 && TOLOWER(*q) != *p
>Release-Note:
>Audit-Trail:
>Unformatted:
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200112110419.fBB4J0M07643>
