diff options
Diffstat (limited to 'src/bin/pg_dump/pg_backup_tar.c')
-rw-r--r-- | src/bin/pg_dump/pg_backup_tar.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/src/bin/pg_dump/pg_backup_tar.c b/src/bin/pg_dump/pg_backup_tar.c index 37feef179f0..42cac59c329 100644 --- a/src/bin/pg_dump/pg_backup_tar.c +++ b/src/bin/pg_dump/pg_backup_tar.c @@ -16,7 +16,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/bin/pg_dump/pg_backup_tar.c,v 1.29 2002/09/06 21:58:36 petere Exp $ + * $Header: /cvsroot/pgsql/src/bin/pg_dump/pg_backup_tar.c,v 1.30 2002/09/10 18:22:20 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -1147,6 +1147,7 @@ _tarGetHeader(ArchiveHandle *AH, TAR_MEMBER *th) int sum, chk; size_t len; + unsigned long ullen; off_t hPos; int i; bool gotBlock = false; @@ -1203,8 +1204,9 @@ _tarGetHeader(ArchiveHandle *AH, TAR_MEMBER *th) } } - sscanf(&h[0], "%99s", &tag[0]); - sscanf(&h[124], "%12o", &len); + sscanf(&h[0], "%99s", tag); + sscanf(&h[124], "%12lo", &ullen); + len = (size_t) ullen; sscanf(&h[148], "%8o", &sum); { @@ -1212,7 +1214,7 @@ _tarGetHeader(ArchiveHandle *AH, TAR_MEMBER *th) snprintf(buf, 100, INT64_FORMAT, (int64) hPos); ahlog(AH, 3, "TOC Entry %s at %s (length %lu, checksum %d)\n", - &tag[0], buf, (unsigned long) len, sum); + tag, buf, (unsigned long) len, sum); } if (chk != sum) @@ -1223,7 +1225,7 @@ _tarGetHeader(ArchiveHandle *AH, TAR_MEMBER *th) die_horribly(AH, modulename, "corrupt tar header found in %s " "(expected %d, computed %d) file position %s\n", - &tag[0], sum, chk, buf); + tag, sum, chk, buf); } th->targetFile = strdup(tag); |