changeset 730:e21d79595045

minor improvements
author Sebastien Decugis <sdecugis@nict.go.jp>
date Thu, 24 Feb 2011 17:19:42 +0900
parents 5d8ac5da7092
children ef199d6185df
files libfdcore/cnxctx.c libfdproto/messages.c libfdproto/ostr.c
diffstat 3 files changed, 6 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- 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 */
--- 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;
 		}
--- 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.h> /* 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;
 }
 
"Welcome to our mercurial repository"