diff options
-rw-r--r-- | ChangeLog | 9 | ||||
-rw-r--r-- | po/de.po | 50 | ||||
-rw-r--r-- | po/fr.po | 50 | ||||
-rw-r--r-- | po/nl.po | 50 | ||||
-rw-r--r-- | po/pl.po | 50 | ||||
-rw-r--r-- | src/mkid.c | 17 | ||||
-rw-r--r-- | testsuite/Makefile.am | 2 | ||||
-rw-r--r-- | testsuite/Makefile.in | 2 | ||||
-rwxr-xr-x | testsuite/consistency | 9 | ||||
-rw-r--r-- | testsuite/single_file_token_bug.c | 4 |
10 files changed, 140 insertions, 103 deletions
@@ -1,3 +1,12 @@ +2005-12-15 Claudio Fontana <claudio@gnu.org> + * src/mkid.c: tweak alloc-ed size of token signature to a minimum + of 1 byte. Fixes assertion failure filed as savannah support request + sr #104712. + + * testsuite/consistency: added test case for this bug + * testsuite/single_file_token_bug.c [new file]: needed for new test + * testsuite/Makefile.am: add new file to distribution + 2005-12-11 Claudio Fontana <claudio@gnu.org> * libidu/scanners.c: Fixed signed/unsigned char* assignments by making both 'scanner_buffer' and 'id' unsigned char*. @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: GNU mkid 3.0.8\n" "Report-Msgid-Bugs-To: bug-id-utils@gnu.org\n" -"POT-Creation-Date: 2005-12-11 04:49+0100\n" +"POT-Creation-Date: 2005-12-15 16:37+0100\n" "PO-Revision-Date: 1996-03-23 22:34 MET\n" "Last-Translator: Karl Eichwalder <ke@ke.Central.DE>\n" "Language-Team: German <de@li.org>\n" @@ -43,7 +43,7 @@ msgstr "" msgid "can't determine the io_size of a string!" msgstr "" -#: libidu/idread.c:49 src/mkid.c:454 src/xtokid.c:227 +#: libidu/idread.c:49 src/mkid.c:474 src/xtokid.c:227 #, c-format msgid "can't open `%s'" msgstr "" @@ -287,7 +287,7 @@ msgstr "" msgid "%s: option `-W %s' doesn't allow an argument\n" msgstr "" -#: src/fid.c:73 src/fnid.c:53 src/lid.c:237 src/mkid.c:123 src/xtokid.c:47 +#: src/fid.c:73 src/fnid.c:53 src/lid.c:237 src/mkid.c:124 src/xtokid.c:47 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "" @@ -443,12 +443,12 @@ msgstr "" msgid "can't match regular-expression: memory exhausted" msgstr "" -#: src/mkid.c:148 src/xtokid.c:68 +#: src/mkid.c:149 src/xtokid.c:68 #, c-format msgid "Usage: %s [OPTION]... [FILE]...\n" msgstr "" -#: src/mkid.c:152 +#: src/mkid.c:153 #, c-format msgid "" "Build an identifier database.\n" @@ -475,104 +475,104 @@ msgid "" "The following arguments apply to the language-specific scanners:\n" msgstr "" -#: src/mkid.c:360 +#: src/mkid.c:376 #, c-format msgid "can't create `%s' in `%s'" msgstr "" -#: src/mkid.c:364 +#: src/mkid.c:380 #, c-format msgid "can't modify `%s'" msgstr "" -#: src/mkid.c:437 +#: src/mkid.c:457 #, c-format msgid "can't stat `%s'" msgstr "" -#: src/mkid.c:506 +#: src/mkid.c:526 #, fuzzy, c-format msgid " new = %d/%d" msgstr ", new=%d/%d" -#: src/mkid.c:515 +#: src/mkid.c:535 #, c-format msgid "Name=%ld, " msgstr "Name=%ld, " -#: src/mkid.c:516 +#: src/mkid.c:536 #, c-format msgid "Number=%ld, " msgstr "Zahl=%ld, " -#: src/mkid.c:517 +#: src/mkid.c:537 #, c-format msgid "String=%ld, " msgstr "Zeichenkette=%ld, " # ist das gemeint? ### -#: src/mkid.c:518 +#: src/mkid.c:538 #, c-format msgid "Literal=%ld, " msgstr "Zeichen=%ld, " -#: src/mkid.c:519 +#: src/mkid.c:539 #, c-format msgid "Comment=%ld\n" msgstr "Kommentar=%ld\n" -#: src/mkid.c:521 +#: src/mkid.c:541 #, fuzzy, c-format msgid "Files=%ld, " msgstr "Dateien=%d, " -#: src/mkid.c:522 +#: src/mkid.c:542 #, c-format msgid "Tokens=%ld, " msgstr "Tokens=%ld, " -#: src/mkid.c:523 +#: src/mkid.c:543 #, c-format msgid "Bytes=%ld Kb, " msgstr "Bytes=%ld Kb, " -#: src/mkid.c:524 +#: src/mkid.c:544 #, fuzzy, c-format msgid "Heap=%d+%d Kb, " msgstr "\"Heap\"=%ld Kb, " -#: src/mkid.c:526 +#: src/mkid.c:546 #, c-format msgid "Output=%ld (%ld tok, %ld hit)\n" msgstr "Ausgabe=%ld (%ld tok, %ld hit)\n" # Frequenz übersetzen? ke -#: src/mkid.c:529 +#: src/mkid.c:549 #, fuzzy, c-format msgid ", Freq=%ld/%ld=%.2f\n" msgstr "\"Freq\"=%ld/%ld=%.2f\n" -#: src/mkid.c:553 +#: src/mkid.c:573 #, c-format msgid "Sorting tokens...\n" msgstr "Sortiere \"Token\"...\n" -#: src/mkid.c:559 +#: src/mkid.c:579 #, c-format msgid "Writing `%s'...\n" msgstr "Schreibe '%s'...\n" -#: src/mkid.c:562 +#: src/mkid.c:582 #, c-format msgid "can't create `%s'" msgstr "" -#: src/mkid.c:630 +#: src/mkid.c:650 #, c-format msgid "error closing `%s'" msgstr "" -#: src/mkid.c:718 +#: src/mkid.c:738 #, fuzzy, c-format msgid "level %d: %ld/%ld = %.0f%%\n" msgstr "level %d: %ld == %ld\n" @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: GNU mkid 3.0.8\n" "Report-Msgid-Bugs-To: bug-id-utils@gnu.org\n" -"POT-Creation-Date: 2005-12-11 04:49+0100\n" +"POT-Creation-Date: 2005-12-15 16:37+0100\n" "PO-Revision-Date: 1996-03-23 22:34 MET\n" "Last-Translator: Unknown <unknown@unknown.fr>\n" "Language-Team: French <fr@li.org>\n" @@ -54,7 +54,7 @@ msgstr "" msgid "can't determine the io_size of a string!" msgstr "" -#: libidu/idread.c:49 src/mkid.c:454 src/xtokid.c:227 +#: libidu/idread.c:49 src/mkid.c:474 src/xtokid.c:227 #, c-format msgid "can't open `%s'" msgstr "" @@ -298,7 +298,7 @@ msgstr "" msgid "%s: option `-W %s' doesn't allow an argument\n" msgstr "" -#: src/fid.c:73 src/fnid.c:53 src/lid.c:237 src/mkid.c:123 src/xtokid.c:47 +#: src/fid.c:73 src/fnid.c:53 src/lid.c:237 src/mkid.c:124 src/xtokid.c:47 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "" @@ -452,12 +452,12 @@ msgstr "" msgid "can't match regular-expression: memory exhausted" msgstr "" -#: src/mkid.c:148 src/xtokid.c:68 +#: src/mkid.c:149 src/xtokid.c:68 #, c-format msgid "Usage: %s [OPTION]... [FILE]...\n" msgstr "" -#: src/mkid.c:152 +#: src/mkid.c:153 #, c-format msgid "" "Build an identifier database.\n" @@ -484,102 +484,102 @@ msgid "" "The following arguments apply to the language-specific scanners:\n" msgstr "" -#: src/mkid.c:360 +#: src/mkid.c:376 #, c-format msgid "can't create `%s' in `%s'" msgstr "" -#: src/mkid.c:364 +#: src/mkid.c:380 #, c-format msgid "can't modify `%s'" msgstr "" -#: src/mkid.c:437 +#: src/mkid.c:457 #, c-format msgid "can't stat `%s'" msgstr "" -#: src/mkid.c:506 +#: src/mkid.c:526 #, fuzzy, c-format msgid " new = %d/%d" msgstr ", nouveau=%d/%d" -#: src/mkid.c:515 +#: src/mkid.c:535 #, c-format msgid "Name=%ld, " msgstr "Nom=%ld, " -#: src/mkid.c:516 +#: src/mkid.c:536 #, c-format msgid "Number=%ld, " msgstr "Numro=%ld, " -#: src/mkid.c:517 +#: src/mkid.c:537 #, c-format msgid "String=%ld, " msgstr "Chane=%ld, " -#: src/mkid.c:518 +#: src/mkid.c:538 #, c-format msgid "Literal=%ld, " msgstr "Litral=%ld, " -#: src/mkid.c:519 +#: src/mkid.c:539 #, c-format msgid "Comment=%ld\n" msgstr "Commentaire=%ld\n" -#: src/mkid.c:521 +#: src/mkid.c:541 #, fuzzy, c-format msgid "Files=%ld, " msgstr "Fichiers=%d, " -#: src/mkid.c:522 +#: src/mkid.c:542 #, c-format msgid "Tokens=%ld, " msgstr "Units lexicales=%ld, " -#: src/mkid.c:523 +#: src/mkid.c:543 #, c-format msgid "Bytes=%ld Kb, " msgstr "Octets=%ld Kb, " -#: src/mkid.c:524 +#: src/mkid.c:544 #, fuzzy, c-format msgid "Heap=%d+%d Kb, " msgstr "tas=%ld Kb, " -#: src/mkid.c:526 +#: src/mkid.c:546 #, c-format msgid "Output=%ld (%ld tok, %ld hit)\n" msgstr "Sortie=%ld (%ld units lexicales, %ld Touches)\n" -#: src/mkid.c:529 +#: src/mkid.c:549 #, fuzzy, c-format msgid ", Freq=%ld/%ld=%.2f\n" msgstr "Freq=%ld/%ld=%.2f\n" -#: src/mkid.c:553 +#: src/mkid.c:573 #, c-format msgid "Sorting tokens...\n" msgstr "Tri units lexicales...\n" -#: src/mkid.c:559 +#: src/mkid.c:579 #, c-format msgid "Writing `%s'...\n" msgstr "criture `%s'...\n" -#: src/mkid.c:562 +#: src/mkid.c:582 #, c-format msgid "can't create `%s'" msgstr "" -#: src/mkid.c:630 +#: src/mkid.c:650 #, c-format msgid "error closing `%s'" msgstr "" -#: src/mkid.c:718 +#: src/mkid.c:738 #, fuzzy, c-format msgid "level %d: %ld/%ld = %.0f%%\n" msgstr "niveau %d: %ld == %ld\n" @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: id-utils 3.2\n" "Report-Msgid-Bugs-To: bug-id-utils@gnu.org\n" -"POT-Creation-Date: 2005-12-11 04:49+0100\n" +"POT-Creation-Date: 2005-12-15 16:37+0100\n" "PO-Revision-Date: 1998-09-30 13:31+02:00\n" "Last-Translator: Ivo Timmermans <zarq@iname.com>\n" "Language-Team: Dutch <nl@li.org>\n" @@ -43,7 +43,7 @@ msgstr "Botsingen=%ld/%ld=%.0f%%" msgid "can't determine the io_size of a string!" msgstr "kan de io_size van een letterreeks niet vaststellen!" -#: libidu/idread.c:49 src/mkid.c:454 src/xtokid.c:227 +#: libidu/idread.c:49 src/mkid.c:474 src/xtokid.c:227 #, c-format msgid "can't open `%s'" msgstr "kan `%s' niet openen" @@ -320,7 +320,7 @@ msgstr "%s: optie `%s' is dubbelzinnig\n" msgid "%s: option `-W %s' doesn't allow an argument\n" msgstr "%s: optie `--%s' staat geen argumenten toe\n" -#: src/fid.c:73 src/fnid.c:53 src/lid.c:237 src/mkid.c:123 src/xtokid.c:47 +#: src/fid.c:73 src/fnid.c:53 src/lid.c:237 src/mkid.c:124 src/xtokid.c:47 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "Probeer `%s --help' voor meer informatie.\n" @@ -530,12 +530,12 @@ msgstr "kan `%s' niet uitvoeren" msgid "can't match regular-expression: memory exhausted" msgstr "kan reguliere expressie niet vergelijken: geheugen vol" -#: src/mkid.c:148 src/xtokid.c:68 +#: src/mkid.c:149 src/xtokid.c:68 #, c-format msgid "Usage: %s [OPTION]... [FILE]...\n" msgstr "Aanroep: %s [OPTIE]... [BESTAND]...\n" -#: src/mkid.c:152 +#: src/mkid.c:153 #, c-format msgid "" "Build an identifier database.\n" @@ -584,102 +584,102 @@ msgstr "" "\n" "The following arguments apply to the language-specific scanners:\n" -#: src/mkid.c:360 +#: src/mkid.c:376 #, c-format msgid "can't create `%s' in `%s'" msgstr "kan `%s' niet aanmaken in `%s'" -#: src/mkid.c:364 +#: src/mkid.c:380 #, c-format msgid "can't modify `%s'" msgstr "kan `%s' niet veranderen" -#: src/mkid.c:437 +#: src/mkid.c:457 #, c-format msgid "can't stat `%s'" msgstr "kan de status van `%s' niet opvragen" -#: src/mkid.c:506 +#: src/mkid.c:526 #, c-format msgid " new = %d/%d" msgstr " nieuw = %d/%d" -#: src/mkid.c:515 +#: src/mkid.c:535 #, c-format msgid "Name=%ld, " msgstr "Naam=%ld, " -#: src/mkid.c:516 +#: src/mkid.c:536 #, c-format msgid "Number=%ld, " msgstr "Nummer = %ld, " -#: src/mkid.c:517 +#: src/mkid.c:537 #, c-format msgid "String=%ld, " msgstr "Letterreeks=%ld, " -#: src/mkid.c:518 +#: src/mkid.c:538 #, c-format msgid "Literal=%ld, " msgstr "Letterlijk=%ld, " -#: src/mkid.c:519 +#: src/mkid.c:539 #, c-format msgid "Comment=%ld\n" msgstr "Commentaar=%ld\n" -#: src/mkid.c:521 +#: src/mkid.c:541 #, fuzzy, c-format msgid "Files=%ld, " msgstr "Bestanden=%d, " -#: src/mkid.c:522 +#: src/mkid.c:542 #, c-format msgid "Tokens=%ld, " msgstr "Eenheden=%ld, " -#: src/mkid.c:523 +#: src/mkid.c:543 #, c-format msgid "Bytes=%ld Kb, " msgstr "Bytes=%ld Kb, " -#: src/mkid.c:524 +#: src/mkid.c:544 #, fuzzy, c-format msgid "Heap=%d+%d Kb, " msgstr "Data=%ld+%ld Kb, " -#: src/mkid.c:526 +#: src/mkid.c:546 #, c-format msgid "Output=%ld (%ld tok, %ld hit)\n" msgstr "Uitvoer=%ld (%ld eenheden, %ld gevonden)\n" -#: src/mkid.c:529 +#: src/mkid.c:549 #, c-format msgid ", Freq=%ld/%ld=%.2f\n" msgstr ", Freq=%ld/%ld=%.2f\n" -#: src/mkid.c:553 +#: src/mkid.c:573 #, c-format msgid "Sorting tokens...\n" msgstr "Eenheden sorteren...\n" -#: src/mkid.c:559 +#: src/mkid.c:579 #, c-format msgid "Writing `%s'...\n" msgstr "`%s' schrijven...\n" -#: src/mkid.c:562 +#: src/mkid.c:582 #, c-format msgid "can't create `%s'" msgstr "kan `%s' niet aanmaken" -#: src/mkid.c:630 +#: src/mkid.c:650 #, c-format msgid "error closing `%s'" msgstr "" -#: src/mkid.c:718 +#: src/mkid.c:738 #, c-format msgid "level %d: %ld/%ld = %.0f%%\n" msgstr "niveau %d: %ld/%ld = %.0f%%\n" @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: id-utils 3.0.8\n" "Report-Msgid-Bugs-To: bug-id-utils@gnu.org\n" -"POT-Creation-Date: 2005-12-11 04:49+0100\n" +"POT-Creation-Date: 2005-12-15 16:37+0100\n" "PO-Revision-Date: 1997-03-26 23:59 +0100\n" "Last-Translator: Wojciech Marek Gałązka <wgalazka@chem.uw.edu.pl>\n" "Language-Team: Polish <pl@li.org>\n" @@ -43,7 +43,7 @@ msgstr "Próby=%ld/%ld=%.2f, " msgid "can't determine the io_size of a string!" msgstr "" -#: libidu/idread.c:49 src/mkid.c:454 src/xtokid.c:227 +#: libidu/idread.c:49 src/mkid.c:474 src/xtokid.c:227 #, c-format msgid "can't open `%s'" msgstr "" @@ -287,7 +287,7 @@ msgstr "" msgid "%s: option `-W %s' doesn't allow an argument\n" msgstr "" -#: src/fid.c:73 src/fnid.c:53 src/lid.c:237 src/mkid.c:123 src/xtokid.c:47 +#: src/fid.c:73 src/fnid.c:53 src/lid.c:237 src/mkid.c:124 src/xtokid.c:47 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "" @@ -441,12 +441,12 @@ msgstr "" msgid "can't match regular-expression: memory exhausted" msgstr "" -#: src/mkid.c:148 src/xtokid.c:68 +#: src/mkid.c:149 src/xtokid.c:68 #, c-format msgid "Usage: %s [OPTION]... [FILE]...\n" msgstr "" -#: src/mkid.c:152 +#: src/mkid.c:153 #, c-format msgid "" "Build an identifier database.\n" @@ -473,102 +473,102 @@ msgid "" "The following arguments apply to the language-specific scanners:\n" msgstr "" -#: src/mkid.c:360 +#: src/mkid.c:376 #, c-format msgid "can't create `%s' in `%s'" msgstr "" -#: src/mkid.c:364 +#: src/mkid.c:380 #, c-format msgid "can't modify `%s'" msgstr "" -#: src/mkid.c:437 +#: src/mkid.c:457 #, c-format msgid "can't stat `%s'" msgstr "" -#: src/mkid.c:506 +#: src/mkid.c:526 #, fuzzy, c-format msgid " new = %d/%d" msgstr ", nowy=%d/%d" -#: src/mkid.c:515 +#: src/mkid.c:535 #, c-format msgid "Name=%ld, " msgstr "Nazwa=%ld, " -#: src/mkid.c:516 +#: src/mkid.c:536 #, c-format msgid "Number=%ld, " msgstr "Numer=%ld, " -#: src/mkid.c:517 +#: src/mkid.c:537 #, c-format msgid "String=%ld, " msgstr "Łańcuch=%ld, " -#: src/mkid.c:518 +#: src/mkid.c:538 #, c-format msgid "Literal=%ld, " msgstr "Literał=%ld, " -#: src/mkid.c:519 +#: src/mkid.c:539 #, c-format msgid "Comment=%ld\n" msgstr "Komentarz=%ld\n" -#: src/mkid.c:521 +#: src/mkid.c:541 #, fuzzy, c-format msgid "Files=%ld, " msgstr "Pliki=%d, " -#: src/mkid.c:522 +#: src/mkid.c:542 #, c-format msgid "Tokens=%ld, " msgstr "Znaczniki=%ld, " -#: src/mkid.c:523 +#: src/mkid.c:543 #, c-format msgid "Bytes=%ld Kb, " msgstr "Bajty=%ld Kb, " -#: src/mkid.c:524 +#: src/mkid.c:544 #, fuzzy, c-format msgid "Heap=%d+%d Kb, " msgstr "Sterta=%ld Kb, " -#: src/mkid.c:526 +#: src/mkid.c:546 #, c-format msgid "Output=%ld (%ld tok, %ld hit)\n" msgstr "Wynik=%ld (%ld tok, %ld hit)\n" -#: src/mkid.c:529 +#: src/mkid.c:549 #, fuzzy, c-format msgid ", Freq=%ld/%ld=%.2f\n" msgstr "Częstość=%ld/%ld=%.2f\n" -#: src/mkid.c:553 +#: src/mkid.c:573 #, c-format msgid "Sorting tokens...\n" msgstr "Sortowanie znaczników...\n" -#: src/mkid.c:559 +#: src/mkid.c:579 #, c-format msgid "Writing `%s'...\n" msgstr "Zapisuję `%s'...\n" -#: src/mkid.c:562 +#: src/mkid.c:582 #, c-format msgid "can't create `%s'" msgstr "" -#: src/mkid.c:630 +#: src/mkid.c:650 #, c-format msgid "error closing `%s'" msgstr "" -#: src/mkid.c:718 +#: src/mkid.c:738 #, fuzzy, c-format msgid "level %d: %ld/%ld = %.0f%%\n" msgstr "poziom %d: %ld == %ld\n" @@ -289,6 +289,21 @@ main (int argc, char **argv) mark_member_file_links (&idh); log_8_member_files = ceil_log_8 (idh.idh_member_file_table.ht_fill); + + /* hack start: when scanning a single file, log_8_member_files results 0. + Adjust to 1 in this case, or xmalloc will be called for 0 bytes, + and later the struct token will have no 'hits' field. + This would cause a crash + (see testsuite/consistency, testsuite/single_file_token_bug.c) + + <claudio@gnu.org 2005> + */ + + if (log_8_member_files == 0) + log_8_member_files = 1; + + /* hack end */ + current_hits_signature = xmalloc (log_8_member_files); /* If scannable files were given, then scan them. */ @@ -327,7 +342,7 @@ ceil_log_8 (unsigned long n) return log_8; } -/* Return the integer ceiling of the base-8 logarithm of N. */ +/* Return the integer ceiling of the base-2 logarithm of N. */ int ceil_log_2 (unsigned long n) diff --git a/testsuite/Makefile.am b/testsuite/Makefile.am index c243ee2..b932992 100644 --- a/testsuite/Makefile.am +++ b/testsuite/Makefile.am @@ -2,7 +2,7 @@ TESTS = consistency -EXTRA_DIST = $(TESTS) +EXTRA_DIST = $(TESTS) single_file_token_bug.c DISTCLEANFILES = ID diff --git a/testsuite/Makefile.in b/testsuite/Makefile.in index d37b482..10da762 100644 --- a/testsuite/Makefile.in +++ b/testsuite/Makefile.in @@ -205,7 +205,7 @@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ TESTS = consistency -EXTRA_DIST = $(TESTS) +EXTRA_DIST = $(TESTS) single_file_token_bug.c DISTCLEANFILES = ID all: all-am diff --git a/testsuite/consistency b/testsuite/consistency index d375b2e..9d4d152 100755 --- a/testsuite/consistency +++ b/testsuite/consistency @@ -55,6 +55,15 @@ else errors=t fi +cmd="$bindir/mkid $m_flag" +echo $cmd +if eval $cmd; then + echo "Good. No crash when dealing with single file" +else + 1>&2 echo "Oops! mkid failed." + errors=t +fi + case x$errors in xt) echo "Some checks failed." exit 1;; diff --git a/testsuite/single_file_token_bug.c b/testsuite/single_file_token_bug.c new file mode 100644 index 0000000..d956ca6 --- /dev/null +++ b/testsuite/single_file_token_bug.c @@ -0,0 +1,4 @@ + +int main(int argc, char* argv[]) { + return 0; +} |