Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.1 6/24/83; site wlbr.UUCP Path: utzoo!watmath!clyde!burl!ulysses!mhuxl!houxm!houxz!vax135!floyd!whuxle!mit-eddie!genrad!decvax!ittvax!dcdwest!sdcsvax!bmcg!cepu!trwrba!trwrb!scgvaxd!wlbr!jm From: jm@wlbr.UUCP Newsgroups: net.unix-wizards,net.bugs.4bsd Subject: 4.2 BSD nm bug Message-ID: <175@wlbr.UUCP> Date: Tue, 12-Jun-84 00:06:05 EDT Article-I.D.: wlbr.175 Posted: Tue Jun 12 00:06:05 1984 Date-Received: Thu, 7-Jun-84 19:38:07 EDT Organization: Eaton ES, Westlake Village, CA Lines: 59 Subject: nm fails to close files when errors occur Index: src/nm.c 4.2BSD Description: When nm is given a file without a reasonable magic number, it fails to close it before proceeding on to the next one. Repeat-By: Run the following command in a directory with some executables, and some data files: nm -o * | fgrepAfter so many bad files, nm will produce an error for every remaining file in its argument list. Fix: The following changes will make nm close the file before proceeding on to the next one. (Whew... all this garbage for only changing two lines!!!) *** nm.c.old Tue Jun 5 17:32:56 1984 --- nm.c Tue Jun 5 17:34:41 1984 *************** *** 99,105 fread((char *)&mag_un, 1, sizeof(mag_un), fi); if (mag_un.mag_exp.a_magic == OARMAG) { error(0, "old archive"); ! return; } if (strncmp(mag_un.mag_armag, ARMAG, SARMAG)==0) archive++; --- 99,105 ----- fread((char *)&mag_un, 1, sizeof(mag_un), fi); if (mag_un.mag_exp.a_magic == OARMAG) { error(0, "old archive"); ! goto out; } if (strncmp(mag_un.mag_armag, ARMAG, SARMAG)==0) archive++; *************** *** 105,111 archive++; else if (N_BADMAG(mag_un.mag_exp)) { error(0, "bad format"); ! return; } fseek(fi, 0L, 0); if (archive) { --- 105,111 ----- archive++; else if (N_BADMAG(mag_un.mag_exp)) { error(0, "bad format"); ! goto out; } fseek(fi, 0L, 0); if (archive) {