restore R dumps core
Chuck Privitera
crp at ccivax.UUCP
Tue Oct 30 23:51:39 AEST 1984
> Under 4.2BSD, restore R causes a segmentation fault then proceeds to
> dump core. Using ADB I found out it dies in bcopy() which is called
> from readtape(). Does anyone have a fix for this? I really haven't
> got the time or patience to wade through restore. Thanks.
> --
> ...ihnp4!tellab1!steve
> Steve Harpster
> Tellabs, Inc.
I ran in to the very same problem. Here's the fix, line
numbers may be off:
rcsdiff -c5 -r1.1 -r1.2 main.c
*** /tmp/,RCSt1001216 Tue Oct 30 08:42:11 1984
--- /tmp/,RCSt2001216 Tue Oct 30 08:42:13 1984
***************
*** 188,197
done(0);
/*
* Resume an incremental file system restoration.
*/
case 'R':
initsymtable(symtbl);
skipmaps();
skipdirs();
createleaves(symtbl);
createlinks();
--- 188,198 -----
done(0);
/*
* Resume an incremental file system restoration.
*/
case 'R':
+ setup1();
initsymtable(symtbl);
skipmaps();
skipdirs();
createleaves(symtbl);
createlinks();
rcsdiff -c5 -r1.1 -r1.2 tape.c
*** /tmp/,RCSt1001224 Tue Oct 30 08:42:52 1984
--- /tmp/,RCSt2001224 Tue Oct 30 08:42:57 1984
***************
*** 160,169
curfile.action = USING;
getfile(xtrmap, xtrmapskip);
}
/*
* Prompt user to load a new dump volume.
* "Nextvol" is the next suggested volume to use.
* This suggested volume is enforced when doing full
* or incremental restores, but can be overrridden by
* the user when only extracting a subset of the files.
--- 160,188 -----
curfile.action = USING;
getfile(xtrmap, xtrmapskip);
}
/*
+ * Initialize fssize variable for 'R' command to work.
+ */
+
+ setup1()
+ {
+ struct stat stbuf;
+
+ if (stat(".", &stbuf) < 0) {
+ perror("cannot stat .");
+ done(1);
+ }
+ fssize = stbuf.st_blksize;
+ if (fssize <= 0 || ((fssize - 1) & fssize) != 0) {
+ fprintf(stderr, "bad block size %d\n", fssize);
+ done(1);
+ }
+ }
+
+ /*
* Prompt user to load a new dump volume.
* "Nextvol" is the next suggested volume to use.
* This suggested volume is enforced when doing full
* or incremental restores, but can be overrridden by
* the user when only extracting a subset of the files.
More information about the Comp.unix.wizards
mailing list