# HG changeset patch # User Sebastien Decugis # Date 1298535582 -32400 # Node ID e21d795950453f4def11d6f2a89e8324d66423ca # Parent 5d8ac5da70922a037e974dadfaccb0c60faa42e6 minor improvements diff -r 5d8ac5da7092 -r e21d79595045 libfdcore/cnxctx.c --- a/libfdcore/cnxctx.c Thu Feb 24 17:19:14 2011 +0900 +++ b/libfdcore/cnxctx.c Thu Feb 24 17:19:42 2011 +0900 @@ -107,6 +107,7 @@ CHECK_PARAMS_DO( port, return NULL ); CHECK_PARAMS_DO( ep || family, return NULL ); CHECK_PARAMS_DO( (! family) || (family == AF_INET) || (family == AF_INET6), return NULL ); + CHECK_PARAMS_DO( (! ep) || (ep->ss.ss_family == AF_INET) || (ep->ss.ss_family == AF_INET6), return NULL ); CHECK_PARAMS_DO( (! ep) || (!family) || (ep->ss.ss_family == family), return NULL ); /* The connection object */ diff -r 5d8ac5da7092 -r e21d79595045 libfdproto/messages.c --- a/libfdproto/messages.c Thu Feb 24 17:19:14 2011 +0900 +++ b/libfdproto/messages.c Thu Feb 24 17:19:42 2011 +0900 @@ -1217,12 +1217,11 @@ /* Now we have to set the value */ memcpy(&avp->avp_storage, value, sizeof(union avp_value)); - /* Copy an octetstring if needed. */ + /* Duplicate an octetstring if needed. */ if (type == AVP_TYPE_OCTETSTRING) { if (value->os.len) { - CHECK_MALLOC( avp->avp_storage.os.data = malloc(value->os.len) ); + CHECK_MALLOC( avp->avp_storage.os.data = os0dup(value->os.data, value->os.len) ); avp->avp_mustfreeos = 1; - memcpy(avp->avp_storage.os.data, value->os.data, value->os.len); } else { avp->avp_storage.os.data = NULL; } diff -r 5d8ac5da7092 -r e21d79595045 libfdproto/ostr.c --- a/libfdproto/ostr.c Thu Feb 24 17:19:14 2011 +0900 +++ b/libfdproto/ostr.c Thu Feb 24 17:19:42 2011 +0900 @@ -40,11 +40,12 @@ #include /* idna_to_ascii_8z() */ #endif /* !defined(DIAMID_IDNA_IGNORE) && !defined(DIAMID_IDNA_REJECT) */ -/* Similar to strdup with (must be verified) os0_t */ +/* Similar to strdup with (must have been verified) os0_t */ os0_t os0dup_int(os0_t s, size_t l) { os0_t r; - CHECK_MALLOC_DO( r = calloc(l+1, 1), return NULL ); + CHECK_MALLOC_DO( r = malloc(l+1), return NULL ); memcpy(r, s, l); /* this might be faster than a strcpy or strdup because it can work with 32 or 64b blocks */ + r[l] = '\0'; return r; }