---
 util.c | 27 +++++++++++++--------------
 util.h | 30 ++++++++++++++++++------------
 2 files changed, 31 insertions(+), 26 deletions(-)

diff --git a/util.c b/util.c
index 284657b..e7245d6 100644
--- a/util.c
+++ b/util.c
@@ -426,8 +426,10 @@ char *string_newf(const char *format, ...)
        char *s;
 
        va_start(ap, format);
-       if (vasprintf(&s, format, ap) < 0)
-               s = NULL;
+       if (vasprintf(&s, format, ap) < 0) {
+               pr_err("failed to allocate memory");
+               exit(1);
+       }
        va_end(ap);
 
        return s;
@@ -439,9 +441,8 @@ void string_append(char **s, const char *str)
 
        len1 = strlen(*s);
        len2 = strlen(str);
-       *s = realloc(*s, len1 + len2 + 1);
-       if (*s)
-               memcpy((*s) + len1, str, len2 + 1);
+       *s = xrealloc(*s, len1 + len2 + 1);
+       memcpy((*s) + len1, str, len2 + 1);
 }
 
 void string_appendf(char **s, const char *format, ...)
@@ -461,18 +462,18 @@ void string_appendf(char **s, const char *format, ...)
                return;
        }
 
-       *s = realloc(*s, len1 + len2 + 1);
-       if (*s)
-               memcpy((*s) + len1, s2, len2 + 1);
+       *s = xrealloc(*s, len1 + len2 + 1);
+       memcpy((*s) + len1, s2, len2 + 1);
        free(s2);
 }
 
 void **parray_new(void)
 {
-       void **a = malloc(sizeof(*a));
+       void **a;
+
+       a = xmalloc(sizeof(*a));
+       *a = NULL;
 
-       if (a)
-               *a = NULL;
        return a;
 }
 
@@ -502,9 +503,7 @@ void parray_extend(void ***a, ...)
        if (alloced < len + ilen) {
                while (alloced < len + ilen)
                        alloced *= 2;
-               *a = realloc(*a, alloced * sizeof **a);
-               if (!*a)
-                       return;
+               *a = xrealloc(*a, alloced * sizeof **a);
        }
 
        va_start(ap, a);
diff --git a/util.h b/util.h
index 8c3aaff..cc521b6 100644
--- a/util.h
+++ b/util.h
@@ -292,11 +292,12 @@ void *xrealloc(void *ptr, size_t size);
 char *xstrdup(const char *s);
 
 /**
- * Get an allocated and formatted string. This is a wrapper around asprintf().
+ * Get an allocated and formatted string. This is a wrapper around asprintf()
+ * that terminates the process on errors.
  *
  * @param format    printf() format string.
  * @param ...       printf() arguments.
- * @return          Pointer to the allocated string, NULL on error.
+ * @return          Pointer to the allocated string.
  */
 #ifdef __GNUC__
 __attribute__ ((format (printf, 1, 2)))
@@ -304,9 +305,10 @@ __attribute__ ((format (printf, 1, 2)))
 char *string_newf(const char *format, ...);
 
 /**
- * Reallocate a string and append another string to it.
+ * Reallocate a string and append another string to it. The process is
+ * terminated when the allocation fails.
  *
- * @param s         String that should be extended, set to NULL on error.
+ * @param s         String that should be extended.
  * @param str       String appended to s.
  */
 void string_append(char **s, const char *str);
@@ -314,26 +316,29 @@ void string_append(char **s, const char *str);
 __attribute__ ((format (printf, 2, 3)))
 #endif
 /**
- * Reallocate a string and append a formatted string to it.
+ * Reallocate a string and append a formatted string to it. The process is
+ * terminated when the allocation fails.
  *
- * @param s         String that should be extended, set to NULL on error.
+ * @param s         String that should be extended.
  * @param format    printf() format string.
  * @param ...       printf() arguments.
  */
 void string_appendf(char **s, const char *format, ...);
 
 /**
- * Get an empty array of pointers terminated by NULL.
+ * Get an empty array of pointers terminated by NULL. The process is terminated
+ * when the allocation fails.
  *
- * @return          Pointer to the allocated array, NULL on error.
+ * @return          Pointer to the allocated array.
  */
 void **parray_new(void);
 
 /**
  * Append pointer to a NULL-terminated pointer array. The array is reallocated
- * in exponentially increasing sizes.
+ * in exponentially increasing sizes. The process is terminated when the
+ * allocation fails.
  *
- * @param a         Pointer to pointer array, set to NULL on error.
+ * @param a         Pointer to pointer array.
  * @param p         Pointer appended to the array.
  */
 void parray_append(void ***a, void *p);
@@ -341,9 +346,10 @@ void parray_append(void ***a, void *p);
 
 /**
  * Append pointers to a NULL-terminated pointer array. The array is reallocated
- * in exponentially increasing sizes.
+ * in exponentially increasing sizes. The process is terminated when the
+ * allocation fails.
  *
- * @param a         Pointer to pointer array, set to NULL on error.
+ * @param a         Pointer to pointer array.
  * @param ...       NULL-terminated list of pointers.
  */
 void parray_extend(void ***a, ...);
-- 
2.1.0


------------------------------------------------------------------------------
_______________________________________________
Linuxptp-devel mailing list
Linuxptp-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linuxptp-devel

Reply via email to