Date: Mon, 7 Apr 1997 09:05:51 +0900 (JST) From: h-nokubi@nmit.mt.nec.co.jp To: FreeBSD-gnats-submit@freebsd.org Subject: bin/3218: syscons causes segmentation fault by repeating cancel with ESC at FTP site setting Message-ID: <199704070005.JAA00580@p28.sss.abk.nec.co.jp> Resent-Message-ID: <199704070440.VAA20856@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 3218
>Category: bin
>Synopsis: syscons causes segmentation fault by repeating cancel with ESC at FTP site setting
>Confidential: no
>Severity: non-critical
>Priority: medium
>Responsible: freebsd-bugs
>State: open
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Sun Apr 6 21:40:03 PDT 1997
>Last-Modified:
>Originator: NOKUBI Hirotaka
>Organization:
NEC Microcomputer Technology Ltd., Tokyo, Japan
>Release: FreeBSD 2.2.1-RELEASE i386
>Environment:
FreeBSD fifthluna.nokubi.or.jp 2.2.1-RELEASE FreeBSD 2.2.1-RELEASE #1: Sat Apr 5 16:07:50 JST 1997 root@sassaby.nokubi.or.jp:/usr/src/.ports/2.2.1-RELEASE/sys/compile/HN2 i386
>Description:
Cancel FTP site selection menu with ESC for a few times.
Sysinstall cause segmentation fault.
>How-To-Repeat:
slightly complicated, sorry.
Invoke sysinstall, then follow these sequences.
7, SPC, 5, SPC, 2, SPC, SPC, SPC, n, ESC, SPC, 2, SPC, 2, SPC
<enter URL>, RET, SPC, n, <fill out network configuration>, <OK>,
SPC, 2, SPC, n, SPC, n, SPC, n, ESC, SPC, 2, SPC, SPC, SPC, n, ESC,
SPC, 2, SPC, 2, SPC, <enter URL>, RET, SPC, n, ESC, SPC, 2, SPC,
SPC, SPC, n, ESC, SPC, 2, SPC
>Fix:
variable_unset() frees next of the specified one.
here is patch.
--- variable.c Sat Apr 5 15:23:26 1997
+++ variable.c.corrected Sat Apr 5 15:03:03 1997
@@ -131,9 +131,9 @@
if (!strcmp(vp->name, var)) {
Variable *save = vp->next;
+ safe_free(vp->name);
+ safe_free(vp->value);
*vp = *save;
- safe_free(save->name);
- safe_free(save->value);
safe_free(save);
break;
}
I'm not sure, but following code is also something wrong.
void
variable_unset(char *var)
{
Variable *vp;
char name[512], *cp;
unsetenv(var);
if ((cp = index(var, '=')) != NULL) {
sstrncpy(name, cp, cp - var);
var = string_skipwhite(string_prune(name));
}
....
....
For example, `var' points the string:
"site=ftp://ftp.freebsd.org/pub/FreeBSD/"
above code copies "=ftp". How is it used? I can't understand it.
>Audit-Trail:
>Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199704070005.JAA00580>
