*/
dataBytes = sizeof(struct afs_CMStats);
dataBuffP = (afs_int32 *)afs_osi_Alloc(dataBytes);
- bcopy((char *)&afs_cmstats, (char *)dataBuffP, dataBytes);
+ memcpy((char *)dataBuffP, (char *)&afs_cmstats, dataBytes);
a_dataP->AFSCB_CollData_len = dataBytes>>2;
a_dataP->AFSCB_CollData_val = dataBuffP;
break;
afs_CountServers();
dataBytes = sizeof(afs_stats_cmperf);
dataBuffP = (afs_int32 *)afs_osi_Alloc(dataBytes);
- bcopy((char *)&afs_stats_cmperf, (char *)dataBuffP, dataBytes);
+ memcpy((char *)dataBuffP, (char *)&afs_stats_cmperf, dataBytes);
a_dataP->AFSCB_CollData_len = dataBytes>>2;
a_dataP->AFSCB_CollData_val = dataBuffP;
break;
*/
afs_stats_cmperf.numPerfCalls++;
afs_CountServers();
- bcopy((char *)(&afs_stats_cmperf),
- (char *)(&(afs_stats_cmfullperf.perf)),
- sizeof(struct afs_stats_CMPerf));
+ memcpy((char *)(&(afs_stats_cmfullperf.perf)), (char *)(&afs_stats_cmperf), sizeof(struct afs_stats_CMPerf));
afs_stats_cmfullperf.numFullPerfCalls++;
dataBytes = sizeof(afs_stats_cmfullperf);
dataBuffP = (afs_int32 *)afs_osi_Alloc(dataBytes);
- bcopy((char *)(&afs_stats_cmfullperf), (char *)dataBuffP, dataBytes);
+ memcpy((char *)dataBuffP, (char *)(&afs_stats_cmfullperf), dataBytes);
a_dataP->AFSCB_CollData_len = dataBytes>>2;
a_dataP->AFSCB_CollData_val = dataBuffP;
break;
afs_int32 i, j;
struct cell *tcell;
struct afs_q *cq, *tq;
- char *t_name;
+ char *t_name, *p_name = NULL;
#ifdef RX_ENABLE_LOCKS
AFS_GLOCK();
#endif /* RX_ENABLE_LOCKS */
AFS_STATCNT(SRXAFSCB_GetCellServDB);
- t_name = (char *)rxi_Alloc(AFSNAMEMAX);
- if (t_name == NULL) {
-#ifdef RX_ENABLE_LOCKS
- AFS_GUNLOCK();
-#endif /* RX_ENABLE_LOCKS */
- return ENOMEM;
- }
-
- t_name[0] = '\0';
- bzero(a_hosts, AFSMAXCELLHOSTS * sizeof(afs_int32));
+ memset(a_hosts, 0, AFSMAXCELLHOSTS * sizeof(afs_int32));
/* search the list for the cell with this index */
ObtainReadLock(&afs_xcell);
tq = QNext(cq);
if (i == a_index) {
tcell = QTOC(cq);
- strcpy(t_name, tcell->cellName);
+ p_name = tcell->cellName;
for (j = 0 ; j < AFSMAXCELLHOSTS && tcell->cellHosts[j] ; j++) {
a_hosts[j] = ntohl(tcell->cellHosts[j]->addr->sa_ip);
}
}
}
+
+ if (p_name)
+ i = strlen(p_name);
+ else
+ i = 0;
+ t_name = (char *)rxi_Alloc(i+1);
+ if (t_name == NULL) {
+#ifdef RX_ENABLE_LOCKS
+ AFS_GUNLOCK();
+#endif /* RX_ENABLE_LOCKS */
+ return ENOMEM;
+ }
+
+ t_name[i] = '\0';
+ if (p_name)
+ memcpy(t_name, p_name, i);
+
ReleaseReadLock(&afs_xcell);
#ifdef RX_ENABLE_LOCKS
struct rx_call *a_call,
char **a_name)
{
+ int plen;
struct cell *tcell;
struct afs_q *cq, *tq;
- char *t_name;
+ char *t_name, *p_name = NULL;
#ifdef RX_ENABLE_LOCKS
AFS_GLOCK();
#endif /* RX_ENABLE_LOCKS */
AFS_STATCNT(SRXAFSCB_GetLocalCell);
- t_name = (char *)rxi_Alloc(AFSNAMEMAX);
- if (t_name == NULL) {
-#ifdef RX_ENABLE_LOCKS
- AFS_GUNLOCK();
-#endif /* RX_ENABLE_LOCKS */
- return ENOMEM;
- }
-
- t_name[0] = '\0';
-
/* Search the list for the primary cell. Cell number 1 is only
* the primary cell is when no other cell is explicitly marked as
* the primary cell. */
tq = QNext(cq);
tcell = QTOC(cq);
if (tcell->states & CPrimary) {
- strcpy(t_name, tcell->cellName);
+ p_name = tcell->cellName;
break;
}
if (tcell->cell == 1) {
- strcpy(t_name, tcell->cellName);
+ p_name = tcell->cellName;
}
}
+
+ if (p_name)
+ plen = strlen(p_name);
+ else
+ plen = 0;
+ t_name = (char *)rxi_Alloc(plen+1);
+ if (t_name == NULL) {
+#ifdef RX_ENABLE_LOCKS
+ AFS_GUNLOCK();
+#endif /* RX_ENABLE_LOCKS */
+ return ENOMEM;
+ }
+
+ t_name[plen] = '\0';
+ if (p_name)
+ memcpy(t_name, p_name, plen);
+
ReleaseReadLock(&afs_xcell);
#ifdef RX_ENABLE_LOCKS