From 26ce8fc8f42b8cdd92e9eaadae48be256813b001 Mon Sep 17 00:00:00 2001 From: Stelian Pop Date: Thu, 7 Jul 2005 08:47:13 +0000 Subject: [PATCH] Fix restore when symtab file is over 2GB in size. --- CHANGES | 4 +++- compat/include/compatlfs.h | 6 +++++- restore/symtab.c | 11 ++++++----- 3 files changed, 14 insertions(+), 7 deletions(-) diff --git a/CHANGES b/CHANGES index 1c3488f..2099f0e 100644 --- a/CHANGES +++ b/CHANGES @@ -1,4 +1,4 @@ -$Id: CHANGES,v 1.277 2005/06/08 13:24:08 stelian Exp $ +$Id: CHANGES,v 1.278 2005/07/07 08:47:13 stelian Exp $ Changes between versions 0.4b40 and 0.4b41 (released ???????????) ================================================================= @@ -10,6 +10,8 @@ Changes between versions 0.4b40 and 0.4b41 (released ???????????) 2. Fix some issues with restoration of EA on big endian platforms. +3. Fix restore when the symtab is over 2GB in size. + Changes between versions 0.4b39 and 0.4b40 (released May 2, 2005) ================================================================= diff --git a/compat/include/compatlfs.h b/compat/include/compatlfs.h index fe7db5f..b5cb0a7 100644 --- a/compat/include/compatlfs.h +++ b/compat/include/compatlfs.h @@ -3,7 +3,7 @@ * dump and restore backup suit * Stelian Pop - AlcĂ´ve , 2000-2002 * - * $Id: compatlfs.h,v 1.5 2004/03/29 13:57:29 stelian Exp $ + * $Id: compatlfs.h,v 1.6 2005/07/07 08:47:16 stelian Exp $ */ /*- @@ -44,8 +44,10 @@ #define _LARGEFILE64_SOURCE #define OPEN open64 +#define FOPEN fopen64 #define LSEEK lseek64 #define STAT stat64 +#define FSTAT fstat64 #define LSTAT lstat64 #define FTRUNCATE ftruncate64 #define OFF_T __off64_t @@ -55,8 +57,10 @@ #else #define OPEN open +#define FOPEN fopen #define LSEEK lseek #define STAT stat +#define FSTAT fstat #define LSTAT lstat #define FTRUNCATE ftruncate #define OFF_T off_t diff --git a/restore/symtab.c b/restore/symtab.c index b69259a..06548bc 100644 --- a/restore/symtab.c +++ b/restore/symtab.c @@ -37,7 +37,7 @@ #ifndef lint static const char rcsid[] = - "$Id: symtab.c,v 1.25 2005/03/30 13:34:00 stelian Exp $"; + "$Id: symtab.c,v 1.26 2005/07/07 08:47:16 stelian Exp $"; #endif /* not lint */ /* @@ -50,6 +50,7 @@ static const char rcsid[] = */ #include +#include #include #include @@ -554,7 +555,7 @@ dumpsymtable(char *filename, long checkpt) Vprintf(stdout, "Check pointing the restore\n"); if (Nflag) return; - if ((fd = fopen(filename, "w")) == NULL) { + if ((fd = FOPEN(filename, "w")) == NULL) { warn("fopen"); panic("cannot create save file %s for symbol table\n", filename); @@ -654,7 +655,7 @@ initsymtable(char *filename) struct entry *ep; struct entry *baseep, *lep; struct symtableheader hdr; - struct stat stbuf; + struct STAT stbuf; long i; int fd; @@ -669,11 +670,11 @@ initsymtable(char *filename) ep->e_flags |= NEW; return; } - if ((fd = open(filename, O_RDONLY, 0)) < 0) { + if ((fd = OPEN(filename, O_RDONLY, 0)) < 0) { warn("open"); errx(1, "cannot open symbol table file %s", filename); } - if (fstat(fd, &stbuf) < 0) { + if (FSTAT(fd, &stbuf) < 0) { warn("stat"); errx(1, "cannot stat symbol table file %s", filename); } -- 2.39.5