version 1.17, 2005/10/10 13:06:24 |
version 1.18, 2005/12/10 20:27:45 |
|
|
{ |
{ |
RCSNUM *rnp; |
RCSNUM *rnp; |
|
|
rnp = (RCSNUM *)malloc(sizeof(*rnp)); |
rnp = (RCSNUM *)xmalloc(sizeof(*rnp)); |
if (rnp == NULL) { |
|
rcs_errno = RCS_ERR_ERRNO; |
|
return (NULL); |
|
} |
|
rnp->rn_len = 0; |
rnp->rn_len = 0; |
rnp->rn_id = NULL; |
rnp->rn_id = NULL; |
|
|
|
|
rcsnum_free(RCSNUM *rn) |
rcsnum_free(RCSNUM *rn) |
{ |
{ |
if (rn->rn_id != NULL) |
if (rn->rn_id != NULL) |
free(rn->rn_id); |
xfree(rn->rn_id); |
free(rn); |
xfree(rn); |
} |
} |
|
|
/* |
/* |
|
|
len = depth; |
len = depth; |
sz = len * sizeof(u_int16_t); |
sz = len * sizeof(u_int16_t); |
|
|
tmp = realloc(ndst->rn_id, sz); |
tmp = xrealloc(ndst->rn_id, sz); |
if (tmp == NULL) { |
|
rcs_errno = RCS_ERR_ERRNO; |
|
return (-1); |
|
} |
|
|
|
ndst->rn_id = (u_int16_t *)tmp; |
ndst->rn_id = (u_int16_t *)tmp; |
ndst->rn_len = len; |
ndst->rn_len = len; |
memcpy(ndst->rn_id, nsrc->rn_id, sz); |
memcpy(ndst->rn_id, nsrc->rn_id, sz); |
|
|
void *tmp; |
void *tmp; |
char *s; |
char *s; |
|
|
if (nump->rn_id == NULL) { |
if (nump->rn_id == NULL) |
nump->rn_id = (u_int16_t *)malloc(sizeof(u_int16_t)); |
nump->rn_id = (u_int16_t *)xmalloc(sizeof(u_int16_t)); |
if (nump->rn_id == NULL) { |
|
rcs_errno = RCS_ERR_ERRNO; |
|
return (-1); |
|
} |
|
} |
|
|
|
nump->rn_len = 0; |
nump->rn_len = 0; |
nump->rn_id[0] = 0; |
nump->rn_id[0] = 0; |
|
|
} |
} |
|
|
nump->rn_len++; |
nump->rn_len++; |
tmp = realloc(nump->rn_id, |
tmp = xrealloc(nump->rn_id, |
(nump->rn_len + 1) * sizeof(u_int16_t)); |
(nump->rn_len + 1) * sizeof(u_int16_t)); |
if (tmp == NULL) |
|
goto rcsnum_aton_failed; |
|
nump->rn_id = (u_int16_t *)tmp; |
nump->rn_id = (u_int16_t *)tmp; |
nump->rn_id[nump->rn_len] = 0; |
nump->rn_id[nump->rn_len] = 0; |
continue; |
continue; |
|
|
|
|
rcsnum_aton_failed: |
rcsnum_aton_failed: |
nump->rn_len = 0; |
nump->rn_len = 0; |
free(nump->rn_id); |
xfree(nump->rn_id); |
nump->rn_id = NULL; |
nump->rn_id = NULL; |
return (-1); |
return (-1); |
} |
} |
|
|
{ |
{ |
void *tmp; |
void *tmp; |
|
|
tmp = realloc(num->rn_id, len * sizeof(u_int16_t)); |
tmp = xrealloc(num->rn_id, len * sizeof(u_int16_t)); |
if (tmp == NULL) { |
|
rcs_errno = RCS_ERR_ERRNO; |
|
return (-1); |
|
} |
|
|
|
num->rn_id = (u_int16_t *)tmp; |
num->rn_id = (u_int16_t *)tmp; |
num->rn_len = len; |
num->rn_len = len; |
return (0); |
return (0); |