diff array.c @ 28:904a373aa120

Buffer security fix. Also switched to == NULL statement instead of ! as advised in man style(9)
author David Demelier <markand@malikania.fr>
date Thu, 22 Sep 2011 13:03:27 +0200
parents 4fd9ecbbb143
children 19c0d2e11406
line wrap: on
line diff
--- a/array.c	Wed Sep 21 12:03:23 2011 +0200
+++ b/array.c	Thu Sep 22 13:03:27 2011 +0200
@@ -31,7 +31,7 @@
 {
 	struct array *arr;
 
-	if (unit == 0 || !(arr = malloc(sizeof (struct array))))
+	if (unit == 0 || (arr = malloc(sizeof (struct array))) == NULL)
 		return NULL;
 
 	arr->tmp	= NULL;
@@ -41,7 +41,7 @@
 	arr->unit	= unit;
 	arr->size	= SIZE(arr->bsize);
 
-	if (!(arr->data = malloc(arr->size))) {
+	if ((arr->data = malloc(arr->size)) == NULL) {
 		free(arr);
 		return NULL;
 	}
@@ -182,7 +182,7 @@
 	 * function.
 	 */
 
-	if (!arr->tmp && !(arr->tmp = malloc(arr->unit)))
+	if (arr->tmp == NULL && (arr->tmp = malloc(arr->unit)) == NULL)
 		return -1;
 
 	memcpy((char *) arr->tmp, (char *) arr->data + SIZE(i1), arr->unit);
@@ -220,7 +220,7 @@
 	int st, i;
 	void *data;
 
-	for (i = st = 0; i < arr->length && !st; ++i)
+	for (i = st = 0; i < arr->length && st != 1; ++i)
 		st = fn((char *) arr->data + SIZE(i), udata);
 
 	if (st)	{
@@ -275,8 +275,8 @@
 		return 0;
 
 	if (arr->flags & ARRAY_AUTO) {
-		if (!(arr->data = realloc(arr->data, arr->size +
-		    SIZE(arr->bsize))))
+		if ((arr->data = realloc(arr->data, arr->size +
+		    SIZE(arr->bsize))) == NULL)
 			return -1;
 
 		arr->size += SIZE(arr->bsize);