]> git.michaelhowe.org Git - packages/o/openafs.git/commitdiff
time_t-pointer-conversions-20040908
authorJeffrey Altman <jaltman@mit.edu>
Wed, 8 Sep 2004 22:35:33 +0000 (22:35 +0000)
committerJeffrey Altman <jaltman@secure-endpoints.com>
Wed, 8 Sep 2004 22:35:33 +0000 (22:35 +0000)
FIXES 15169

Modify all parameters to functions which take a pointer to time_t
to actually provide a pointer to time_t instead of pointers to long,
afs_int32, afs_uint32, etc.

This is to provide compatibility with systems that use 64-bit time_t
typedefs such as the IBM compilers for AIX and the Microsoft Visual
Studio 2005 compiler.

This patch does not address any of the issues of data loss caused
by converting 64-bit time_t to 32-bit signed or unsigned values.

17 files changed:
src/WINNT/afsd/cm_freelance.c
src/WINNT/afsd/cm_freelance.h
src/WINNT/afsd/cm_vnodeops.h
src/WINNT/afsd/ctokens.c
src/WINNT/afsd/smb.c
src/WINNT/afsd/smb3.c
src/bucoord/commands.c
src/bucoord/dump_sched.c
src/bucoord/restore.c
src/butc/lwps.c
src/butc/recoverDb.c
src/butc/tcmain.c
src/butm/test_ftm.c
src/ubik/udebug.c
src/util/ktime.c
src/util/serverLog.c
src/viced/viced.c

index f0caaf3db9f98bd5abf84a93caa53c03f1730522..a4b85999dce27b05e79a59ad64f62350d3c0e862 100644 (file)
@@ -30,7 +30,7 @@ cm_localMountPoint_t* cm_localMountPoints;
 osi_mutex_t cm_Freelance_Lock;
 int cm_localMountPointChangeFlag = 0;
 int cm_freelanceEnabled = 0;
-afs_uint32    FakeFreelanceModTime = 0x3b49f6e2;
+time_t FakeFreelanceModTime = 0x3b49f6e2;
 
 void cm_InitFakeRootDir();
 
index b7d90e3e7ea66061043b2e943df1d7623f3f04b2..33874a24ce8611d64112b26d3cf48fcc98c3e3d5 100644 (file)
@@ -23,5 +23,5 @@ extern int cm_clearLocalMountPointChange();
 #define AFS_FAKE_ROOT_CELL_ID 0xFFFFFFFF
 #define AFS_FAKE_ROOT_VOL_ID  0xFFFFFFFF
 
-extern afs_uint32 FakeFreelanceModTime;
+extern time_t FakeFreelanceModTime;
 #endif // _CM_FREELANCE_H
index ce45999f180f562b63876a5dbf2c2d46b49be836..058c541b2864c00d876f0bd6ac56dcd7479954b2 100644 (file)
@@ -15,7 +15,7 @@ extern unsigned int cm_mountRootGen;
 /* parms for attribute setting call */
 typedef struct cm_attr {
        int mask;
-       unsigned long clientModTime;
+       time_t clientModTime;
         osi_hyper_t length;
        int unixModeBits;
         long owner;
index 9b357d9ae6c108bf7090eb600ee3c04ab24e0e78..5d74150fddaa6665029e413b214cd519b59a5cb9 100644 (file)
@@ -88,7 +88,8 @@ main(argc, argv)
                        if (tokenExpireTime <= current_time)
                                printf("[>> Expired <<]\n");
                        else {
-                               expireString = ctime(&tokenExpireTime);
+                                time_t t = tokenExpireTime;
+                               expireString = ctime(&t);
                                expireString += 4;       /* Skip day of week */
                                expireString[12] = '\0'; /* Omit secs & year */
                                printf("[Expires %s]\n", expireString);
index 7d0f37d2ce109b270fda0e1b218710534cc4fc30..65781133a144ffce9d1d5e28801ce9981cd4af81 100644 (file)
@@ -5800,8 +5800,8 @@ long smb_ReceiveCoreCreate(smb_vc_t *vcp, smb_packet_t *inp, smb_packet_t *outp)
                code = cm_SetAttr(scp, &setAttr, userp, &req);
     }
     else {
-               setAttr.mask = CM_ATTRMASK_CLIENTMODTIME;
-               smb_UnixTimeFromDosUTime(&setAttr.clientModTime, dosTime);
+        setAttr.mask = CM_ATTRMASK_CLIENTMODTIME;
+        smb_UnixTimeFromDosUTime(&setAttr.clientModTime, dosTime);
         code = cm_Create(dscp, lastNamep, 0, &setAttr, &scp, userp,
                          &req);
                if (code == 0 && (dscp->flags & CM_SCACHEFLAG_ANYWATCH))
index 5b43ef969c249de316807bc46c66d4bf93be457d..ede718e92dde38b72feb62bd2d67b37010589b71 100644 (file)
@@ -2006,7 +2006,7 @@ long smb_ReceiveTran2Open(smb_vc_t *vcp, smb_tran2Packet_t *p, smb_packet_t *op)
     smb_fid_t *fidp;
     int attributes;
     char *lastNamep;
-    long dosTime;
+    time_t dosTime;
     int openFun;
     int trunc;
     int openMode;
@@ -2476,7 +2476,7 @@ long cm_GetShortName(char *pathp, cm_user_t *userp, cm_req_t *reqp,
 long smb_ReceiveTran2QPathInfo(smb_vc_t *vcp, smb_tran2Packet_t *p, smb_packet_t *opx)
 {
        smb_tran2Packet_t *outp;
-    unsigned long dosTime;
+    time_t dosTime;
        FILETIME ft;
     unsigned short infoLevel;
     int nbytesRequired;
@@ -2980,7 +2980,7 @@ long smb_ApplyV3DirListPatches(cm_scache_t *dscp,
     cm_scache_t *scp;
     cm_scache_t *targetScp;                    /* target if scp is a symlink */
     char *dptr;
-    long dosTime;
+    time_t dosTime;
        FILETIME ft;
     int shortTemp;
     unsigned short attr;
@@ -4067,7 +4067,7 @@ long smb_ReceiveV3OpenX(smb_vc_t *vcp, smb_packet_t *inp, smb_packet_t *outp)
     smb_fid_t *fidp;
     int attributes;
     char *lastNamep;
-    long dosTime;
+    time_t dosTime;
     int openFun;
     int trunc;
     int openMode;
@@ -4458,7 +4458,7 @@ long smb_ReceiveV3GetAttributes(smb_vc_t *vcp, smb_packet_t *inp, smb_packet_t *
     smb_fid_t *fidp;
     cm_scache_t *scp;
     long code = 0;
-    long searchTime;
+    time_t searchTime;
     cm_user_t *userp;
        cm_req_t req;
 
@@ -4520,8 +4520,8 @@ long smb_ReceiveV3SetAttributes(smb_vc_t *vcp, smb_packet_t *inp, smb_packet_t *
     smb_fid_t *fidp;
     cm_scache_t *scp;
     long code = 0;
-       long searchTime;
-    long unixTime;
+    time_t searchTime;
+    time_t unixTime;
     cm_user_t *userp;
     cm_attr_t attrs;
        cm_req_t req;
index 423de31bdd97262c297592c19af22a0e04dcb700..49c08773afb66361ecd597d9ad3cb4cf3b043dbf 100644 (file)
@@ -626,7 +626,8 @@ compactDateString(date_long, string, size)
     if (*date_long == NEVERDATE) {
        sprintf(string, "NEVER");
     } else {
-       ltime = localtime(date_long);
+        time_t t = *date_long;
+       ltime = localtime(&t);
        /* prints date in U.S. format of mm/dd/yyyy */
        strftime(string, size, "%m/%d/%Y %H:%M", ltime);
     }
@@ -2902,13 +2903,14 @@ dumpInfo(dumpid, detailFlag)
        printf("----\n");
        printDumpEntry(&dumpEntry);
     } else {
+        time_t t = dumpEntry.created;
        if (dbDump)
            printf("Dump: id %u, created: %s\n", dumpEntry.id,
-                  ctime(&dumpEntry.created));
-       else
+                  ctime(&t));
+       else
            printf("Dump: id %u, level %d, volumes %d, created: %s\n",
                   dumpEntry.id, dumpEntry.level, dumpEntry.nVolumes,
-                  ctime(&dumpEntry.created));
+                  ctime(&t));
     }
 
     if (!detailFlag && (strlen(dumpEntry.tapes.tapeServer) > 0)
index fcf76f7b006976d4d18717f8a613388d6ccf0839..f99db4159b4f42047e58796f02a0d6cb32c0d1fe 100644 (file)
@@ -581,7 +581,8 @@ ListDumpSchedule(adump, alevel)
     case BC_ABS_EXPDATE:
        /* absolute expiration date. Never expires if date is 0 */
        if (adump->expDate) {
-           printf("expires at %.24s", cTIME(&adump->expDate));
+            time_t t = adump->expDate;
+           printf("expires at %.24s", cTIME(&t));
        }
        break;
 
index 1222911277310713ae8a81234ed60c0828b51584..513de7ea9d927e4b9a8cc2c00d41842059788e66 100644 (file)
@@ -195,7 +195,7 @@ bc_Restorer(aindex)
     afs_int32 partitionAll;    /* Likewise for partition */
     struct hostent *hostPtr;
     long haddr;
-    u_long did;
+    time_t did;
     int foundtape, c;
 
     extern statusP createStatusNode();
index 1ce9e4120be18df75fbb2107ae3621dbb19ed4f4..534ab48b46b1f125a4fa29efb8529b8eb521070b 100644 (file)
@@ -2287,6 +2287,7 @@ PrintTapeLabel(labelptr)
      struct butm_tapeLabel *labelptr;
 {
     char tapeName[BU_MAXTAPELEN + 32];
+    time_t t;
 
     printf("Tape label\n");
     printf("----------\n");
@@ -2294,9 +2295,12 @@ PrintTapeLabel(labelptr)
     printf("permanent tape name = %s\n", tapeName);
     TAPENAME(tapeName, labelptr->AFSName, labelptr->dumpid);
     printf("AFS tape name = %s\n", tapeName);
-    printf("creationTime = %s", ctime(&labelptr->creationTime));
-    if (labelptr->expirationDate)
-       printf("expirationDate = %s", cTIME(&labelptr->expirationDate));
+    t = labelptr->creationTime;
+    printf("creationTime = %s", ctime(&t));
+    if (labelptr->expirationDate) {
+        t = labelptr->expirationDate;
+       printf("expirationDate = %s", cTIME(&t));
+    }
     printf("cell = %s\n", labelptr->cell);
     printf("size = %u Kbytes\n", labelptr->size);
     printf("dump path = %s\n", labelptr->dumpPath);
index 1b66eb9c67b7ad9978bd606e7049c8c17a769cd8..11c53b35e02a65e3afff356e4b5fc9421cde69d9 100644 (file)
@@ -59,6 +59,7 @@ PrintDumpLabel(labelptr)
      struct butm_tapeLabel *labelptr;
 {
     char tapeName[BU_MAXTAPELEN + 32];
+    time_t t;
 
     printf("Dump label\n");
     printf("----------\n");
@@ -66,9 +67,12 @@ PrintDumpLabel(labelptr)
     printf("permanent tape name = %s\n", tapeName);
     TAPENAME(tapeName, labelptr->AFSName, labelptr->dumpid);
     printf("AFS tape name = %s\n", tapeName);
-    printf("creationTime = %s", ctime(&labelptr->creationTime));
-    if (labelptr->expirationDate)
-       printf("expirationDate = %s", cTIME(&labelptr->expirationDate));
+    t = labelptr->creationTime;
+    printf("creationTime = %s", ctime(&t));
+    if (labelptr->expirationDate) {
+        t = labelptr->expirationDate;
+       printf("expirationDate = %s", cTIME(&t));
+    }
     printf("cell = %s\n", labelptr->cell);
     printf("size = %u Kbytes\n", labelptr->size);
     printf("dump path = %s\n", labelptr->dumpPath);
@@ -87,6 +91,8 @@ static
 PrintVolumeHeader(volHeader)
      struct volumeHeader *volHeader;
 {
+    time_t t;
+
     printf("-- volume --\n");
     printf("volume name: %s\n", volHeader->volumeName);
     printf("volume ID %d\n", volHeader->volumeID);
@@ -97,7 +103,8 @@ PrintVolumeHeader(volHeader)
     printf("parentID %d\n", volHeader->parentID);
     printf("endTime %d\n", volHeader->endTime);
     /* printf("versionflags %d\n", volHeader->versionflags); */
-    printf("clonedate %s\n", ctime(&volHeader->cloneDate));
+    t = volHeader->cloneDate;
+    printf("clonedate %s\n", ctime(&t));
 }
 
 /* Ask
index d804794f69bb8f74079b0eeb696b97fa02440bb7..787fa8da394455decf62f64b604125c544c07d37 100644 (file)
@@ -856,6 +856,7 @@ WorkerBee(as, arock)
 #else
     PROCESS dbWatcherPid;
 #endif
+    time_t t;
 
     debugLevel = 0;
 
@@ -1131,7 +1132,8 @@ WorkerBee(as, arock)
 
     TLog(0, "Starting Tape Coordinator: Port offset %u   Debug level %u\n",
         portOffset, debugLevel);
-    TLog(0, "Token expires: %s\n", cTIME(&ttoken.endTime));
+    t = ttoken.endTime;
+    TLog(0, "Token expires: %s\n", cTIME(&t));
 
     rx_StartServer(1);         /* Donate this process to the server process pool */
     TLog(0, "Error: StartServer returned");
index 973e6f218ef127e39021fbbf909e104065b8d2aa..f8d1406ae0c308702c5c94f6c0d1131e040573a7 100644 (file)
@@ -324,8 +324,8 @@ PerformDumpTest(TestInfo * tip)
     }
     past = time(0) - label.creationTime;
     if ((past < 0) || (past > 5 * 60)) {
-       printf("label creation time is long ago: %s\n",
-              ctime(&label.creationTime));
+        time_t t = label.creationTime;
+       printf("label creation time is long ago: %s\n", ctime(&t));
        ERROR_EXIT(5);
     }
     if (strcmp(label.AFSName, tip->tapeName) != 0) {
index 2499ff7b6e308fecbb17340848c41aca6efb583e..b72ad85cfa238c03a2a9f5d0346b56d05e57b4d6 100644 (file)
@@ -97,7 +97,7 @@ CommandProc(struct cmd_syndesc *as, char *arock)
     register afs_int32 i, j, code;
     short port;
     int int32p;
-    afs_int32 now, diff, newtime;
+    time_t now, diff, newtime;
     struct hostent *th;
     struct rx_connection *tconn;
     struct rx_securityClass *sc;
index eba0260b943857f41485ebb7b3709ac9c3a0335d..f113b4f0181fcef21439f77917c50c43e3690443 100644 (file)
@@ -165,7 +165,8 @@ ktime_DateOf(afs_int32 atime)
 {
     static char tbuffer[30];
     register char *tp;
-    tp = ctime((time_t *) & atime);
+    time_t t = atime;
+    tp = ctime(&t);
     if (tp) {
        strcpy(tbuffer, tp);
        tbuffer[24] = 0;        /* get rid of new line */
index fabf5209078b6b2a5b1ab7425b6a776168e88251..7b63bff5855d7e1c413e2c75ccd3f73ea047c881 100644 (file)
@@ -235,8 +235,9 @@ OpenLog(const char *fileName)
 #endif
 
     if (mrafsStyleLogs) {
+        time_t t = Start.tv_sec;
        TM_GetTimeOfDay(&Start, 0);
-       TimeFields = localtime(&Start.tv_sec);
+       TimeFields = localtime(&t);
        if (fileName) {
            if (strncmp(fileName, (char *)&ourName, strlen(fileName)))
                strcpy((char *)&ourName, (char *)fileName);
index ba109723924755a17f09421f1e1582c537841cf6..e2251bc177b7d3e2dc43222bb0a24a192b96be0c 100644 (file)
@@ -1564,6 +1564,7 @@ main(int argc, char *argv[])
     struct rlimit rlim;                /* max number of open file descriptors */
 #endif
     int curLimit;
+    time_t t;
 
 #ifdef AFS_AIX32_ENV
     struct sigaction nsa;
@@ -1868,9 +1869,10 @@ main(int argc, char *argv[])
     TM_GetTimeOfDay(&tp, 0);
 
 #ifndef AFS_QUIETFS_ENV
-    if (console != NULL) {
+    if (console != NULL) { 
+        time_t t = tp.tv_sec;
        fprintf(console, "File server has started at %s\r",
-               afs_ctime(&tp.tv_sec, tbuffer, sizeof(tbuffer)));
+               afs_ctime(&t, tbuffer, sizeof(tbuffer)));
     }
 #endif
 
@@ -1907,9 +1909,10 @@ main(int argc, char *argv[])
     (void)signal(SIGQUIT, ShutDown_Signal);
 #endif
 
+    t = tp.tv_sec;
     ViceLog(0,
            ("File Server started %s",
-            afs_ctime(&tp.tv_sec, tbuffer, sizeof(tbuffer))));
+            afs_ctime(&t, tbuffer, sizeof(tbuffer))));
 #if FS_STATS_DETAILED
     afs_FullPerfStats.det.epoch.tv_sec = StartTime = tp.tv_sec;
 #endif