OPENAFS-SA-2018-002 butc: prevent TC_DumpStatus, TC_ScanStatus information leaks
[openafs.git] / src / butc / tcstatus.c
index 1bd280f..db06b51 100644 (file)
 #include <afsconfig.h>
 #include <afs/param.h>
 
+#include <roken.h>
 
-#include <sys/types.h>
-#ifdef AFS_NT40_ENV
-#include <winsock2.h>
-#else
-#include <netinet/in.h>
-#include <netdb.h>
-#include <sys/socket.h>
-#include <sys/time.h>
-#include <strings.h>
-#endif
-#include <stdio.h>
-#include <string.h>
 #include <afs/com_err.h>
 #include <lock.h>
 #include <afs/bubasics.h>
 #include <afs/butc.h>
 #include <afs/budb_client.h>
 #include <afs/bucoord_prototypes.h>
-#include "butc_internal.h"
 
+#include "butc_internal.h"
 #include "error_macros.h"
 #include "butc_xbsa.h"
+
 /* tape coordinator - task status management */
 extern afs_int32 xbsaType;
 
@@ -56,14 +46,13 @@ STC_GetStatus(struct rx_call *call, afs_uint32 taskId,
     statusP ptr;
     int retval = 0;
 
+    memset(statusPtr, 0, sizeof(*statusPtr));
     if (callPermitted(call) == 0)
        return (TC_NOTPERMITTED);
 
     lock_Status();
     ptr = findStatus(taskId);
     if (ptr) {
-       /* strcpy(statusPtr->status, ptr->status); */
-
        strcpy(statusPtr->taskName, ptr->taskName);
        strcpy(statusPtr->volumeName, ptr->volumeName);
        statusPtr->taskId = ptr->taskId;
@@ -143,6 +132,7 @@ STC_ScanStatus(struct rx_call *call, afs_uint32 *taskId,
     statusP ptr = 0;
     dlqlinkP dlqPtr;
 
+    memset(statusPtr, 0, sizeof(*statusPtr));
     if (callPermitted(call) == 0)
        return (TC_NOTPERMITTED);