scw@cepu.UUCP (05/25/84)
There is a bug in uuxqt.c involving *LONG* mail paths, or long command lines; SYSTEMS Affected: v7, v7m, Ultrix-11(??), 2.8BSD, 2.9BSD(??); Anyone with v7 derived uucp (?probably); Symptoms: uuxqt (UUXQT) vanishes leaving LCK.XQT and a 0 length core in /usr/spool/uucp or a real core file (depending on who actually invoked it and the permisions on /usr/lib/uuxqt) that has the C back frames scrogged. Cause: While parsing the command line the mail path (argument to rmail) tramples on the stack. Actually it gets copied to a char[] that is too short. Repeat by: Send a message with more that MAXFULLNAME (uucp.h) characters in the path. A system with this problem will be unable to pass the message on. -or- Generate a bogus X.system1234 file with a long (>MAXFULLNAME) X line in it. then manually invoke uuxqt with -x4 to watch it die with a segementation violation. Fix: change line ~~40 from: char xcmd[100]; to: char xcmd[BUFSIZ]; Change line ~~50 from: char *cmdp, prm[MAXFULLLNAME],*ptr; to: char *cmdp, prm[BUFSIZ],*ptr; This fix will allow command lines to be up to 511 char long. -- Stephen C. Woods (VA Wadsworth Med Ctr./UCLA Dept. of Neurology) uucp: { {ihnp4, uiucdcs}!bradley, hao, trwrb, sdcsvax!bmcg}!cepu!scw ARPA: cepu!scw@ucla-locus location: N 34 06'37" W 118 25'43"
scw@cepu.UUCP (05/25/84)
There is a bug in uuxqt.c involving very long execute times (with many executes) SYSTEMS Affected: v7, v7m, Ultrix-11(??), 2.8BSD, 2.9BSD(??); Anyone with v7 derived uucp (?probably); Symptoms: Several copies if uuxtq run simultaniously. Cause: uuxtq doen't update the lock (LCK.XQT) between processes. Repeat by: Exec several files (so that total execute time is longer than the X_LOCKTIME (uucp.h). This can happen if you get several days worth of news into your system when it's very busy. Fix: Make the following changes to uuxqt.c to update X_LOCK just before every search/execute cycle. --- uuxqt.c.B Wed Jan 18 13:13:04 1984 *** uuxqt.c Thu May 24 13:18:25 1984 *************** --- 50,55 ----- char *getprm(); int uid, ret; int stcico = 0; Debug = 0; *** 50,56 int uid, ret; + long now,timep[2]; /* to update lock file*/ int stcico = 0; *************** --- 81,86 ----- while (gtxfile(xfile) > 0) { DEBUG(4, "xfile - %s\n", xfile); xfp = fopen(xfile, "r"); ASSERT(xfp != NULL, "CAN'T OPEN %s", xfile); *** 83,91 while (gtxfile(xfile) > 0) { DEBUG(4, "xfile - %s\n", xfile); + time(&now); /* get time */ + timep[0]=timep[1]=now; /* set up table */ + utime(X_LOCK,timep); /* and fix lock time up*/ xfp = fopen(xfile, "r"); ASSERT(xfp != NULL, "CAN'T OPEN %s", xfile); -- Stephen C. Woods (VA Wadsworth Med Ctr./UCLA Dept. of Neurology) uucp: { {ihnp4, uiucdcs}!bradley, hao, trwrb, sdcsvax!bmcg}!cepu!scw ARPA: cepu!scw@ucla-locus location: N 34 06'37" W 118 25'43"