struct vnodeData {
struct VnodeDiskObject *vnode; /* A pointer to the disk vnode */
int vnodeNumber; /* The vnode number */
- long dumpdata; /* File offset of dump data (if
+ off64_t dumpdata; /* File offset of dump data (if
* available */
unsigned char *filedata; /* A pointer to the actual file
* data itself (if available) */
unsigned int magic;
struct DumpHeader dheader;
VolumeDiskData vol;
- long offset;
+ off64_t offset;
int Res, Arg1, Arg2, Arg3, i;
char *p;
struct winsize win;
* vnodes, the other to actually build the index.
*/
- offset = ftell(f);
+ offset = ftello64(f);
if (ScanVnodes(f, &vol, 1)) {
fprintf(stderr, "First vnode scan failed, aborting\n");
exit(1);
}
- fseek(f, offset, SEEK_SET);
+ fseeko64(f, offset, SEEK_SET);
if (ScanVnodes(f, &vol, 0)) {
fprintf(stderr, "Second vnode scan failed, aborting\n");
int numDirVnodes = 0;
unsigned char buf[SIZEOF_LARGEDISKVNODE];
struct VnodeDiskObject *vnode = (struct VnodeDiskObject *)buf;
- long offset, oldoffset;
+ off64_t offset, oldoffset;
struct vnodeData *vdata;
unsigned int length;
return -1;
}
vnode->length = length;
- offset = ftell(f);
- fseek(f, length, SEEK_CUR);
+ offset = ftello64(f);
+ fseeko64(f, length, SEEK_CUR);
break;
default:
if (verbose)
return -1;
}
- oldoffset = ftell(f);
- fseek(f, offset, SEEK_SET);
+ oldoffset = ftello64(f);
+ fseeko64(f, offset, SEEK_SET);
if (fread(vdata->filedata, length, 1, f) != 1) {
if (verbose)
return -1;
}
- fseek(f, oldoffset, SEEK_SET);
+ fseeko64(f, oldoffset, SEEK_SET);
} else if (vnode->type == vDirectory)
/*
* Warn the user we may not have all directory
* Parsing the directory information is a pain, but other than that
* we just use the other tools we already have in here.
*/
-
+#define CMDBUFSIZE (AFSPATHMAX * 2)
static void
InteractiveRestore(FILE * f, VolumeDiskData * vol)
{
struct vnodeData *vdatacwd; /* Vnode data for our current dir */
- char cmdbuf[256];
+ char cmdbuf[CMDBUFSIZE];
int argc;
char **argv;
numNoDirData);
printf("> ");
- while (fgets(cmdbuf, 256, stdin)) {
+ while (fgets(cmdbuf, CMDBUFSIZE, stdin)) {
cmdbuf[strlen(cmdbuf) - 1] = '\0';
{
struct vnodeData *vdata;
FILE *out;
- long cur = 0;
+ off64_t cur = 0;
int bytes, ret;
char buffer[COPYBUFSIZE];
return;
}
- if (fseek(f, vdata->dumpdata, SEEK_SET)) {
+ if (fseeko64(f, vdata->dumpdata, SEEK_SET)) {
fprintf(stderr, "Seek failed: %s\n", strerror(errno));
fclose(out);
return;
{
struct vnodeData *vdata;
FILE *out;
- long cur = 0;
+ off64_t cur = 0;
int bytes, ret;
char buffer[COPYBUFSIZE];
unsigned int vnode, uniquifier = 0;
return;
}
- if (fseek(f, vdata->dumpdata, SEEK_SET)) {
+ if (fseeko64(f, vdata->dumpdata, SEEK_SET)) {
fprintf(stderr, "Seek failed: %s\n", strerror(errno));
fclose(out);
return;
static char *largv[64];
char **la = largv;
char *s = string;
- static char argbuf[256];
+ static char argbuf[CMDBUFSIZE];
char *ap = argbuf;
*argc = 0;