Okay to add missing strdup checks to ldconfig?

Index: libexec/ld.so/ldconfig/library.c
===================================================================
RCS file: /cvs/src/libexec/ld.so/ldconfig/library.c,v
retrieving revision 1.9
diff -u -p -r1.9 library.c
--- libexec/ld.so/ldconfig/library.c    10 Jun 2015 20:50:05 -0000      1.9
+++ libexec/ld.so/ldconfig/library.c    5 Sep 2015 12:21:53 -0000
@@ -60,6 +60,8 @@ load_lib(const char *name, struct elf_ob
                char *lpath, *lname;
 
                lpath = strdup(name);
+               if (lpath == NULL)
+                       return (1);
                lname = strrchr(lpath, '/');
                if (lname == NULL || lname[1] == '\0') {
                        free(lpath);
Index: libexec/ld.so/ldconfig/prebind.c
===================================================================
RCS file: /cvs/src/libexec/ld.so/ldconfig/prebind.c,v
retrieving revision 1.29
diff -u -p -r1.29 prebind.c
--- libexec/ld.so/ldconfig/prebind.c    3 Jun 2015 02:24:36 -0000       1.29
+++ libexec/ld.so/ldconfig/prebind.c    5 Sep 2015 12:21:53 -0000
@@ -518,6 +518,10 @@ elf_load_object(void *pexe, const char *
 
        object->load_base = lbase;
        object->load_name = strdup(name);
+       if (object->load_name == NULL) {
+               printf("unable to allocate object for %s\n", name);
+               exit(10);
+       }
 
        phdr = (Elf_Phdr *)((char *)pexe + ehdr->e_phoff);
        for (i = 0; i < ehdr->e_phnum; i++) {
@@ -529,6 +533,11 @@ elf_load_object(void *pexe, const char *
                        /* XXX can only occur in programs */
                        curbin->interp = strdup((char *)((char *)pexe +
                            phdr[i].p_offset));
+                       if (curbin->interp == NULL) {
+                               printf("unable to allocate object for %s\n",
+                                   name);
+                               exit(10);
+                       }
                        break;
                default:
                        break;

Reply via email to