On 02/10/18 11:13, Justin Hibbits wrote:
On Fri, Feb 9, 2018 at 7:22 PM, Ed Maste <ema...@freebsd.org> wrote:
On 9 February 2018 at 14:46, Conrad Meyer <c...@freebsd.org> wrote:
Author: cem
Date: Fri Feb 9 19:46:51 2018
New Revision: 329077
URL: https://svnweb.freebsd.org/changeset/base/329077
Log:
tftp(1): Fix libedit state corruption involving signals
From https://ci.freebsd.org/job/FreeBSD-head-mips-build/391/console:
01:15:24 --- all_subdir_usr.bin/tftp ---
01:15:24 --- main.o ---
01:15:24 cc1: warnings being treated as errors
01:15:24 /usr/src/usr.bin/tftp/main.c: In function 'main':
01:15:24 /usr/src/usr.bin/tftp/main.c:182: warning: 'hist' may be used
uninitialized in this function
01:15:24 /usr/src/usr.bin/tftp/main.c:181: warning: 'el' may be used
uninitialized in this function
After initializing these, I see the following interesting error:
/home/chmeee/freebsd/head/usr.bin/tftp/main.c:181: warning: variable
'el' might be clobbered by 'longjmp' or 'vfork'
/home/chmeee/freebsd/head/usr.bin/tftp/main.c:182: warning: variable
'hist' might be clobbered by 'longjmp' or 'vfork'
This appears to be a known bug in gcc, at
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=24239 so I don't know
what the best way to fix it is.
Independent of the compiler bug, it does seem like 'el' and 'hist' can
be used uninitialized for the non-interactive case.
Untested, but perhaps an only-when-needed initialization like this may
workaround the compiler bug.
Cheers,
Pedro.
Index: usr.bin/tftp/main.c
===================================================================
--- usr.bin/tftp/main.c (revision 329104)
+++ usr.bin/tftp/main.c (working copy)
@@ -197,6 +197,9 @@
el_set(el, EL_PROMPT, command_prompt);
el_set(el, EL_SIGNAL, 1);
el_source(el, NULL);
+ } else { /* Quell GCC */
+ el = NULL;
+ hist = NULL;
}
if (argc > 1) {
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"