plugin_common.c | plugin_common.c | |||
---|---|---|---|---|
skipping to change at line 155 | skipping to change at line 155 | |||
memset(&hints, 0, sizeof(hints)); | memset(&hints, 0, sizeof(hints)); | |||
hints.ai_family = PF_UNSPEC; | hints.ai_family = PF_UNSPEC; | |||
hints.ai_socktype = SOCK_STREAM; | hints.ai_socktype = SOCK_STREAM; | |||
hints.ai_flags = AI_PASSIVE | AI_NUMERICHOST; | hints.ai_flags = AI_PASSIVE | AI_NUMERICHOST; | |||
if (getaddrinfo(hbuf, &addr[i], &hints, &ai) != 0) { | if (getaddrinfo(hbuf, &addr[i], &hints, &ai) != 0) { | |||
PARAMERROR( utils ); | PARAMERROR( utils ); | |||
return SASL_BADPARAM; | return SASL_BADPARAM; | |||
} | } | |||
len = ai->ai_addrlen; | len = (socklen_t) ai->ai_addrlen; | |||
memcpy(&ss, ai->ai_addr, len); | memcpy(&ss, ai->ai_addr, len); | |||
freeaddrinfo(ai); | freeaddrinfo(ai); | |||
sockaddr_unmapped((struct sockaddr *)&ss, &len); | sockaddr_unmapped((struct sockaddr *)&ss, &len); | |||
if (outlen < len) { | if (outlen < len) { | |||
PARAMERROR( utils ); | PARAMERROR( utils ); | |||
return SASL_BUFOVER; | return SASL_BUFOVER; | |||
} | } | |||
memcpy(out, &ss, len); | memcpy(out, &ss, len); | |||
skipping to change at line 233 | skipping to change at line 233 | |||
if(!(*rwbuf)) { | if(!(*rwbuf)) { | |||
*rwbuf = utils->malloc(newlen); | *rwbuf = utils->malloc(newlen); | |||
if (*rwbuf == NULL) { | if (*rwbuf == NULL) { | |||
*curlen = 0; | *curlen = 0; | |||
MEMERROR(utils); | MEMERROR(utils); | |||
return SASL_NOMEM; | return SASL_NOMEM; | |||
} | } | |||
*curlen = newlen; | *curlen = newlen; | |||
} else if(*rwbuf && *curlen < newlen) { | } else if(*rwbuf && *curlen < newlen) { | |||
size_t needed = 2*(*curlen); | unsigned needed = 2*(*curlen); | |||
while(needed < newlen) | while(needed < newlen) | |||
needed *= 2; | needed *= 2; | |||
*rwbuf = utils->realloc(*rwbuf, needed); | *rwbuf = utils->realloc(*rwbuf, needed); | |||
if (*rwbuf == NULL) { | if (*rwbuf == NULL) { | |||
*curlen = 0; | *curlen = 0; | |||
MEMERROR(utils); | MEMERROR(utils); | |||
return SASL_NOMEM; | return SASL_NOMEM; | |||
} | } | |||
skipping to change at line 270 | skipping to change at line 270 | |||
*out = utils->malloc(len + 1); | *out = utils->malloc(len + 1); | |||
if (!*out) { | if (!*out) { | |||
MEMERROR(utils); | MEMERROR(utils); | |||
return SASL_NOMEM; | return SASL_NOMEM; | |||
} | } | |||
strcpy((char *) *out, in); | strcpy((char *) *out, in); | |||
if (outlen) | if (outlen) | |||
*outlen = len; | *outlen = (int) len; | |||
return SASL_OK; | return SASL_OK; | |||
} | } | |||
void _plug_free_string(const sasl_utils_t *utils, char **str) | void _plug_free_string(const sasl_utils_t *utils, char **str) | |||
{ | { | |||
size_t len; | size_t len; | |||
if (!utils || !str || !(*str)) return; | if (!utils || !str || !(*str)) return; | |||
len = strlen(*str); | len = strlen(*str); | |||
utils->erasebuffer(*str, len); | utils->erasebuffer(*str, (unsigned int) len); | |||
utils->free(*str); | utils->free(*str); | |||
*str=NULL; | *str=NULL; | |||
} | } | |||
void _plug_free_secret(const sasl_utils_t *utils, sasl_secret_t **secret) | void _plug_free_secret(const sasl_utils_t *utils, sasl_secret_t **secret) | |||
{ | { | |||
if(!utils || !secret || !(*secret)) return; | if(!utils || !secret || !(*secret)) return; | |||
utils->erasebuffer((char *)(*secret)->data, (*secret)->len); | utils->erasebuffer((char *)(*secret)->data, (*secret)->len); | |||
End of changes. 4 change blocks. | ||||
4 lines changed or deleted | 4 lines changed or added | |||
This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |