From f149a3c54b0c0c3503556722e9b7f9d8f0b793b8 Mon Sep 17 00:00:00 2001 From: Andrew Deason Date: Wed, 15 Jul 2009 09:54:32 -0500 Subject: [PATCH] Correct ctime arguments Corrects a few places throughout the tree where ctime() is incorrectly passed a pointer to an afs_uint32 or similar fixed-width datatype, instead of a pointer to a time_t. FIXES 124538 Reviewed-on: http://gerrit.openafs.org/http://gerrit.openafs.org/100 Tested-by: Andrew Deason Tested-by: Russ Allbery Reviewed-by: Russ Allbery --- src/bozo/smail-notifier.c | 9 ++-- src/butc/read_tape.c | 27 ++++++++---- src/kauth/kautils.c | 1 + src/tviced/state_analyzer.c | 4 +- src/util/afsutil.h | 1 + src/util/test/dtest.c | 4 +- src/util/test/ktest.c | 4 +- src/util/test/test_ktime.c | 14 +++--- src/vfsck/inode.c | 4 +- src/viced/callback.c | 4 +- src/vlserver/vlclient.c | 2 +- src/volser/vos.c | 102 +++++++++++++++++++++++++++++--------------- 12 files changed, 113 insertions(+), 63 deletions(-) diff --git a/src/bozo/smail-notifier.c b/src/bozo/smail-notifier.c index b393232..5b82d92 100644 --- a/src/bozo/smail-notifier.c +++ b/src/bozo/smail-notifier.c @@ -41,11 +41,10 @@ main(argc, argv) char buf[BUFSIZ], *bufp, *bufp1, *typep, *cmd, *bp; register afs_int32 code, c, fd, id, pflags = -1, len, core = 0, lastE = 0; char comLine[60], coreName[40], name[40], lastErrorName[50]; - afs_int32 pid = -1, lastExit = -1, lastSignal = -1, rsTime = -1, rsCount = - -1; - afs_int32 procStartTime = -1, procStarts = -1; - afs_int32 lastAnyExit = -1, lastErrorExit = -1, errorCode = - -1, errorSignal = -1, goal = -1; + afs_int32 pid = -1, lastExit = -1, lastSignal = -1, rsCount = -1; + afs_int32 procStarts = -1; + afs_int32 errorCode = -1, errorSignal = -1, goal = -1; + time_t procStartTime = -1, rsTime = -1, lastAnyExit = -1, lastErrorExit = -1; char *timeStamp; typep = (char *)malloc(50); diff --git a/src/butc/read_tape.c b/src/butc/read_tape.c index e7f1fad..96050b0 100644 --- a/src/butc/read_tape.c +++ b/src/butc/read_tape.c @@ -96,18 +96,23 @@ printLabel(struct tapeLabel *tapeLabelPtr) fprintf(stderr, "\nDUMP %u\n", tapeLabelPtr->label.dumpid); if (printlabels) { + time_t t; + fprintf(stderr, " AFS Tape Name : %s\n", tapeLabelPtr->label.AFSName); fprintf(stderr, " Permanent Name : %s\n", tapeLabelPtr->label.pName); fprintf(stderr, " Dump Id : %u\n", tapeLabelPtr->label.dumpid); + t = tapeLabelPtr->label.dumpid; fprintf(stderr, " Dump Id Time : %.24s\n", - ctime(&(tapeLabelPtr->label.dumpid))); + ctime(&t)); + t = tapeLabelPtr->label.creationTime; fprintf(stderr, " Date Created : %.24s\n", - ctime(&(tapeLabelPtr->label.creationTime))); + ctime(&t)); + t = tapeLabelPtr->label.expirationDate; fprintf(stderr, " Date Expires : %.24s\n", - ctime(&(tapeLabelPtr->label.expirationDate))); + ctime(&t)); fprintf(stderr, " Version Number : %d\n", tapeLabelPtr->label.structVersion); fprintf(stderr, " Tape Use Count : %d\n", @@ -150,33 +155,37 @@ printHeader(struct volumeHeader *headerPtr, afs_int32 *isvolheader) headerPtr->cloneDate = ntohl(headerPtr->cloneDate); if (headerPtr->magic == TC_VOLBEGINMAGIC) { + time_t t; + *isvolheader = 1; if (verbose) fprintf(stderr, "Volume header\n"); + t = headerPtr->from; fprintf(stderr, "VOLUME %3d %s (%u) - %s dump from %.24s", ++volcount, headerPtr->volumeName, headerPtr->volumeID, (headerPtr->level ? "Incr" : "Full"), - ((headerPtr->from) ? (char *)ctime(&headerPtr->from) : "0")); + (t ? (char *)ctime(&t) : "0")); /* do not include two ctime() calls in the same fprintf call as * the same string buffer will be returned by each call. */ - fprintf(stderr, - " till %.24s\n", - ctime(&(headerPtr->cloneDate))); + t = headerPtr->cloneDate; + fprintf(stderr, " till %.24s\n", ctime(&t)); if (printheaders) { fprintf(stderr, " Volume Name = %s\n", headerPtr->volumeName); fprintf(stderr, " Volume ID = %u\n", headerPtr->volumeID); + t = headerPtr->cloneDate; fprintf(stderr, " Clone Date = %.24s\n", - ctime(&headerPtr->cloneDate)); + ctime(&t)); fprintf(stderr, " Vol Fragment = %d\n", headerPtr->frag); fprintf(stderr, " Vol Continued = 0x%x\n", headerPtr->contd); fprintf(stderr, " DumpSet Name = %s\n", headerPtr->dumpSetName); fprintf(stderr, " Dump ID = %u\n", headerPtr->dumpID); fprintf(stderr, " Dump Level = %d\n", headerPtr->level); + t = headerPtr->from; fprintf(stderr, " Dump Since = %.24s\n", - ctime(&headerPtr->from)); + ctime(&t)); fprintf(stderr, " parent Dump ID = %u\n", headerPtr->parentID); } } else if (headerPtr->magic == TC_VOLENDMAGIC) { diff --git a/src/kauth/kautils.c b/src/kauth/kautils.c index f6f1df2..f48fbf1 100644 --- a/src/kauth/kautils.c +++ b/src/kauth/kautils.c @@ -11,6 +11,7 @@ #include +#include #include #include #ifdef AFS_NT40_ENV diff --git a/src/tviced/state_analyzer.c b/src/tviced/state_analyzer.c index 128e9d8..35e13cf 100644 --- a/src/tviced/state_analyzer.c +++ b/src/tviced/state_analyzer.c @@ -784,8 +784,8 @@ print_cb_help(void) /* time */ #define DPFT(T, name, var) \ do { \ - char * last; \ - printf(T "%s = \"%s\"\n", name, strtok_r(ctime(&(var)), "\r\n", &last)); \ + time_t t = var; \ + printf(T "%s = \"%.24s\"\n", name, ctime(&t)); \ } while(0) #define DPFT1(name, var) DPFT(DPFTB1, name, var) #define DPFT2(name, var) DPFT(DPFTB2, name, var) diff --git a/src/util/afsutil.h b/src/util/afsutil.h index 4b8832e..e4dfead 100644 --- a/src/util/afsutil.h +++ b/src/util/afsutil.h @@ -31,6 +31,7 @@ #include #include +#include extern int LogLevel; extern int mrafsStyleLogs; diff --git a/src/util/test/dtest.c b/src/util/test/dtest.c index e1721d0..5f232f4 100644 --- a/src/util/test/dtest.c +++ b/src/util/test/dtest.c @@ -18,6 +18,7 @@ main(argc, argv) char **argv; { long code, temp; + time_t t; if (argc <= 1) { printf("dtest: usage is 'dtest