cudcv@warwick.ac.uk (Rob McMahon) (12/21/88)
Fep passes the wrong number of parameters to longjmp. The value returned from setjmp is not tested, so this will probably still work on most machines, but it still seems like a bad move. Also it uses (p <= 0) for `char *p', which will no doubt fail if `p' happens to end up with its top bit set. -- (Line numbers may vary) RCS file: fep_edit.c,v retrieving revision 1.2 retrieving revision 1.3 diff -c -r1.2 -r1.3 *** /tmp/,RCSt1a03910 Tue Dec 20 19:10:41 1988 --- /tmp/,RCSt2a03910 Tue Dec 20 19:10:42 1988 *************** *** 1712,1718 **** fputs ("\r\n", stdout); perror ("alloca:"); reprint (); ! longjmp (jbuf); } strcpy (fcp, dp->d_name); fileList [i++] = fcp; --- 1712,1718 ---- fputs ("\r\n", stdout); perror ("alloca:"); reprint (); ! longjmp (jbuf, 1); } strcpy (fcp, dp->d_name); fileList [i++] = fcp; *************** *** 1902,1908 **** fputs ("\r\n", stdout); perror ("alloca:"); reprint (); ! longjmp (jbuf); } strcpy (fcp, dp->d_name); fileList [i++] = fcp; --- 1902,1908 ---- fputs ("\r\n", stdout); perror ("alloca:"); reprint (); ! longjmp (jbuf, 1); } strcpy (fcp, dp->d_name); fileList [i++] = fcp; -- RCS file: fep_main.c,v retrieving revision 1.1 retrieving revision 1.2 diff -c -r1.1 -r1.2 *** /tmp/,RCSt1a03918 Tue Dec 20 19:12:05 1988 --- /tmp/,RCSt2a03918 Tue Dec 20 19:12:06 1988 *************** *** 243,249 **** * Initialize output buffer. */ output_buffer->buf = (char *) malloc (5120); ! if (output_buffer->buf <= 0) { fprintf (stderr, "Can't allocate enough momory\n"); kill_process (); exit (1); --- 243,249 ---- * Initialize output buffer. */ output_buffer->buf = (char *) malloc (5120); ! if (output_buffer->buf == 0) { fprintf (stderr, "Can't allocate enough momory\n"); kill_process (); exit (1); -- Rob -- UUCP: ...!mcvax!ukc!warwick!cudcv PHONE: +44 203 523037 JANET: cudcv@uk.ac.warwick ARPA: cudcv@warwick.ac.uk Rob McMahon, Computing Services, Warwick University, Coventry CV4 7AL, England