cu coredumps (fwd)
Timour Ezeev
timour at pivotaldynamics.com
Thu Oct 28 16:03:47 PDT 2004
Oops, I don't think my original post got to bugs@, so reposting...
--
Timour Ezeev
Pivotal Dynamics
timour at xxxxxxxxxxxxxxxxxxx
V: 305.406.9904
F: 305.406.9689
---------- Forwarded message ----------
On Tue, 26 Oct 2004, Mark Cullen wrote:
I managed to update to HEAD a few hours before you announced slipping the
Stable tag (I think). While I don't actually need to use cu on this machine,
I did discover it seems to core dump...
(root|beast)/home/mrboo# cu -l cuaa0
zsh: segmentation fault (core dumped) cu -l cuaa0
(root|beast)/home/mrboo# cu -l cuaa1
zsh: segmentation fault (core dumped) cu -l cuaa1
(root|beast)/home/mrboo#
...
Sorry to bring this subject up again, but I finally had a chance to
examine the source code. Here is a patch that I think addresses the
problem with minimal modification to the original code and algorithm.
Instead of adding a prefix to a device name it simply bails out (this
of course can be changed). The main difference with the suggested fix is
that this patch fixes the lookup procedure rather then creating a hack
around it.
Regards,
- Timour
--
Timour Ezeev
Pivotal Dynamics
timour at xxxxxxxxxxxxxxxxxxx
V: 305.406.9904
F: 305.406.9689
Index: remote.c
===================================================================
RCS file: /home/dcvs/src/usr.bin/tip/tip/remote.c,v
retrieving revision 1.3
diff -u -r1.3 remote.c
--- remote.c 3 Nov 2003 19:31:33 -0000 1.3
+++ remote.c 28 Oct 2004 22:18:17 -0000
@@ -120,17 +120,21 @@
}
if ((stat = cgetent(&bp, db_array, host)) < 0) {
- if (DV ||
- (host[0] == '/' && access(DV = host, R_OK | W_OK) == 0)) {
- CU = DV;
- HO = host;
- HW = 1;
- DU = 0;
- if (!BR)
- BR = DEFBR;
- FS = DEFFS;
- return;
+ /* Check for valid device */
+ if (DV && access(DV, R_OK | W_OK) != 0) {
+ err(errno, "bad device `%s\'", DV);
}
+ else
+ if (DV || host[0] == '/' && access(DV = host, R_OK | W_OK) == 0) {
+ CU = DV;
+ HO = host;
+ HW = 1;
+ DU = 0;
+ if (!BR)
+ BR = DEFBR;
+ FS = DEFFS;
+ return;
+ }
switch(stat) {
case -1:
warnx("unknown host %s", host);
More information about the Bugs
mailing list