]> git.cworth.org Git - fips/commitdiff
Add xmalloc function
authorCarl Worth <cworth@cworth.org>
Tue, 22 Oct 2013 17:26:22 +0000 (10:26 -0700)
committerCarl Worth <cworth@cworth.org>
Tue, 22 Oct 2013 17:57:32 +0000 (10:57 -0700)
To simplify the code by abstracting away repeated checks for malloc
failure and exit.

Makefile.local
execute.c
metrics.c
xmalloc.c [new file with mode: 0644]
xmalloc.h [new file with mode: 0644]

index 8d2475bb272ba9d31c992926d9f7400df68ed6cf..4ace9aa0159fae299c1cf913ee250ad44ac6a1b4 100644 (file)
@@ -76,7 +76,8 @@ distclean: clean
 
 fips_srcs = \
        execute.c \
-       fips.c
+       fips.c \
+       xmalloc.c
 
 fips_modules = $(fips_srcs:.c=.o)
 
@@ -94,7 +95,8 @@ libfips_srcs = \
        fips-dispatch-gl.c \
        glwrap.c \
        glxwrap.c \
-       metrics.c
+       metrics.c \
+       xmalloc.c
 
 ifeq ($(HAVE_EGL),Yes)
 libfips_srcs += eglwrap.c
index cc01c436db2329e19184a7d651b3fe5e06efe5aa..07fd30f4e26f2d282032e4702e42cdecb8ee910a 100644 (file)
--- a/execute.c
+++ b/execute.c
@@ -36,6 +36,7 @@
 #include <gelf.h>
 
 #include "execute.h"
+#include "xmalloc.h"
 
 /* Terminate a string representing a filename at the final '/' to
  * eliminate the final filename component, (leaving only the directory
@@ -294,11 +295,7 @@ execute_with_fips_preload (int argc, char * const argv[])
        char **execvp_args;
        int i;
 
-       execvp_args = malloc((argc + 1) * sizeof(char *));
-       if (execvp_args == NULL) {
-               fprintf (stderr, "Out of memory,\n");
-               return 1;
-       }
+       execvp_args = xmalloc((argc + 1) * sizeof(char *));
 
        for (i = 0; i < argc; i++) {
                execvp_args[i] = argv[i];
index 77d7321b7f7e393682d9ef76abb314eddd6da74e..09083e639ab966d6e80c36845c8da3c76f447059 100644 (file)
--- a/metrics.c
+++ b/metrics.c
@@ -29,6 +29,7 @@
 #include "fips-dispatch-gl.h"
 
 #include "metrics.h"
+#include "xmalloc.h"
 
 typedef struct counter
 {
@@ -116,11 +117,7 @@ metrics_counter_start (void)
 {
        counter_t *counter;
 
-       counter = malloc (sizeof(counter_t));
-       if (counter == NULL) {
-               fprintf (stderr, "Out of memory\n");
-               exit (1);
-       }
+       counter = xmalloc (sizeof(counter_t));
 
        glGenQueries (1, &counter->id);
 
diff --git a/xmalloc.c b/xmalloc.c
new file mode 100644 (file)
index 0000000..22eb7cf
--- /dev/null
+++ b/xmalloc.c
@@ -0,0 +1,39 @@
+/* Copyright © 2013, Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#include "xmalloc.h"
+
+void *
+xmalloc (size_t size)
+{
+       void *ret;
+
+       ret = malloc (size);
+       if (ret == NULL) {
+               fprintf (stderr, "Out of memory\n");
+               exit (1);
+       }
+
+       return ret;
+}
diff --git a/xmalloc.h b/xmalloc.h
new file mode 100644 (file)
index 0000000..b36c900
--- /dev/null
+++ b/xmalloc.h
@@ -0,0 +1,28 @@
+/* Copyright © 2013, Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+#ifndef XMALLOC_H
+#define XMALLOC_H
+
+void *
+xmalloc (size_t size);
+
+#endif