Here's a series of patches to fix or mark-with-comment uses
of malloc where a failure can lead to NULL dereference.
I started off fixing them, but there were pretty many,
so after a while I merely marked them.

Note I've marked a use of strdup, too.  While I went through
the entire list of uses of malloc, I haven't done the same
for strdup.  That was just the first one I spotted.

Jim

>From e0d6d82db2f6aa8029b6be2cbc387cef749b81af Mon Sep 17 00:00:00 2001
From: Jim Meyering <[EMAIL PROTECTED]>
Date: Mon, 13 Oct 2008 15:57:20 +0200
Subject: [PATCH] don't dereference NULL upon failed malloc

* cman/daemon/daemon.c (process_rendezvous):  Fix typo (s/con/newcon/)
that would make a failed realloc cause a NULL dereference.
---
 cman/daemon/daemon.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/cman/daemon/daemon.c b/cman/daemon/daemon.c
index b08e78e..6cef080 100644
--- a/cman/daemon/daemon.c
+++ b/cman/daemon/daemon.c
@@ -329,7 +329,7 @@ static int process_rendezvous(poll_handle handle, int fd, 
int revent, void *data
        client_fd = accept(fd, (struct sockaddr *) &socka, &sl);
        if (client_fd >= 0) {
                struct connection *newcon = malloc(sizeof(struct connection));
-               if (!con) {
+               if (!newcon) {
                        close(client_fd);
                        return 0; /* returning -1 will remove us */
                }
-- 
1.6.0.2.514.g23abd3


>From 4c5232b19de55b706e060d7e59272f1851bd8930 Mon Sep 17 00:00:00 2001
From: Jim Meyering <[EMAIL PROTECTED]>
Date: Mon, 13 Oct 2008 16:11:53 +0200
Subject: [PATCH] * cman/lib/libcman.c (cman_dispatch): Handle a failed malloc.

---
 cman/lib/libcman.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/cman/lib/libcman.c b/cman/lib/libcman.c
index bf6df83..9855c17 100644
--- a/cman/lib/libcman.c
+++ b/cman/lib/libcman.c
@@ -518,6 +518,8 @@ int cman_dispatch(cman_handle_t handle, int flags)
                if (header->length > sizeof(buf))
                {
                        bufptr = malloc(header->length);
+                       if (!bufptr)
+                               return -1;
                        memcpy(bufptr, buf, sizeof(*header));
                        header = (struct sock_header *)bufptr;
                }
-- 
1.6.0.2.514.g23abd3


>From 43d3ff3bde54bf32de2d003ff7f767691690ba31 Mon Sep 17 00:00:00 2001
From: Jim Meyering <[EMAIL PROTECTED]>
Date: Mon, 13 Oct 2008 16:21:31 +0200
Subject: [PATCH] * fence/agents/xvm/ip_lookup.c (add_ip): Handle malloc failure.

---
 fence/agents/xvm/ip_lookup.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/fence/agents/xvm/ip_lookup.c b/fence/agents/xvm/ip_lookup.c
index 6500025..cbeb5b2 100644
--- a/fence/agents/xvm/ip_lookup.c
+++ b/fence/agents/xvm/ip_lookup.c
@@ -73,6 +73,8 @@ add_ip(ip_list_t *ipl, char *ipaddr, char family)
        dbg_printf(4, "Adding IP %s to list (family %d)\n", ipaddr, family);

        ipa = malloc(sizeof(*ipa));
+       if (!ipa)
+               return -1;
        memset(ipa, 0, sizeof(*ipa));
        ipa->ipa_family = family;
        ipa->ipa_address = strdup(ipaddr);
-- 
1.6.0.2.514.g23abd3


>From c6ab824d5c46b016769dd95e96a4eb135feb2b98 Mon Sep 17 00:00:00 2001
From: Jim Meyering <[EMAIL PROTECTED]>
Date: Mon, 13 Oct 2008 17:08:45 +0200
Subject: [PATCH] * gfs/gfs_fsck/inode.c (check_inode): handle failed malloc

---
 gfs/gfs_fsck/inode.c |    6 +++++-
 1 files changed, 5 insertions(+), 1 deletions(-)

diff --git a/gfs/gfs_fsck/inode.c b/gfs/gfs_fsck/inode.c
index 4420880..7a88589 100644
--- a/gfs/gfs_fsck/inode.c
+++ b/gfs/gfs_fsck/inode.c
@@ -125,7 +125,11 @@ static int fs_get_istruct(struct fsck_sb *sdp, struct 
gfs_inum *inum,
                goto out;
        }

-       ip = (struct fsck_inode *)malloc(sizeof(struct fsck_inode));
+       if(!(ip = (struct fsck_inode *)malloc(sizeof(struct fsck_inode)))) {
+               log_err("Unable to allocate memory for inode\n");
+               error = -1;
+               goto out;
+       }
        ip->i_num = *inum;

        ip->i_sbd = sdp;
-- 
1.6.0.2.514.g23abd3


>From df2d490961b836fdd129ed724376813908fc4b6c Mon Sep 17 00:00:00 2001
From: Jim Meyering <[EMAIL PROTECTED]>
Date: Mon, 13 Oct 2008 16:31:54 +0200
Subject: [PATCH] remove dead code (useless test of memset return value)

* gfs/gfs_fsck/block_list.c (block_list_create): memset can't fail.
There are many more like this.
---
 gfs/gfs_fsck/block_list.c |    5 +----
 1 files changed, 1 insertions(+), 4 deletions(-)

diff --git a/gfs/gfs_fsck/block_list.c b/gfs/gfs_fsck/block_list.c
index ecc9dbd..f377fd0 100644
--- a/gfs/gfs_fsck/block_list.c
+++ b/gfs/gfs_fsck/block_list.c
@@ -23,10 +23,7 @@ struct block_list *block_list_create(uint64_t size, enum 
block_list_type type)
        log_info("Creating a block list of size %"PRIu64"...\n", size);

        if ((il = malloc(sizeof(*il)))) {
-               if(!memset(il, 0, sizeof(*il))) {
-                       log_err("Cannot set block list to zero\n");
-                       return NULL;
-               }
+               memset(il, 0, sizeof(*il));
                il->type = type;

                switch(type) {
-- 
1.6.0.2.514.g23abd3


>From 71f475740de9c7bca1e958f9a7c8936b7a4a471d Mon Sep 17 00:00:00 2001
From: Jim Meyering <[EMAIL PROTECTED]>
Date: Mon, 13 Oct 2008 16:48:39 +0200
Subject: [PATCH] add comments marking unchecked malloc calls

* gfs/gfs_fsck/super.c:
* gfs/libgfs/fs_dir.c:
* gfs/libgfs/inode.c:
* gfs/libgfs/super.c (ji_update):
* gfs2/edit/hexedit.c (display_indirect):
* gfs2/edit/savemeta.c (gfs1_rindex_read):
* gfs2/fsck/initialize.c (init_system_inodes):
* gfs2/libgfs2/super.c (rindex_read):
* group/daemon/app.c:
* group/daemon/cpg.c (deliver_cb):
* group/daemon/joinleave.c (new_node):
* group/daemon/main.c (do_get_groups, do_send):
* group/dlm_controld/plock.c (unpack_section_buf):
* group/gfs_controld/plock.c (unpack_section_buf):
* src/daemons/clurmtabd_lib.c (rmtab_insert):
* src/daemons/dtest.c (dtest_shell, main):
---
 gfs/gfs_fsck/fs_dir.c                 |    4 ++++
 gfs/gfs_fsck/super.c                  |    3 +++
 gfs/libgfs/fs_dir.c                   |    4 ++++
 gfs/libgfs/inode.c                    |    1 +
 gfs/libgfs/super.c                    |    1 +
 gfs2/edit/hexedit.c                   |    1 +
 gfs2/edit/savemeta.c                  |    1 +
 gfs2/fsck/initialize.c                |    1 +
 gfs2/libgfs2/super.c                  |    1 +
 group/daemon/app.c                    |    3 +++
 group/daemon/cpg.c                    |    2 ++
 group/daemon/joinleave.c              |    1 +
 group/daemon/main.c                   |    2 ++
 group/dlm_controld/plock.c            |    2 ++
 group/gfs_controld/plock.c            |    2 ++
 rgmanager/src/daemons/clurmtabd_lib.c |    1 +
 rgmanager/src/daemons/dtest.c         |    2 ++
 17 files changed, 32 insertions(+), 0 deletions(-)

diff --git a/gfs/gfs_fsck/fs_dir.c b/gfs/gfs_fsck/fs_dir.c
index 399575e..27f559a 100644
--- a/gfs/gfs_fsck/fs_dir.c
+++ b/gfs/gfs_fsck/fs_dir.c
@@ -549,6 +549,7 @@ static int dir_l_search(struct fsck_inode *dip, 
identifier_t *id, unsigned int *
                        exit(1);
                }
                id->inum = (struct gfs_inum *)malloc(sizeof(struct gfs_inum));
+               /* FIXME: don't dereference NULL on failed malloc */
                memset(id->inum, 0, sizeof(struct gfs_inum));

                gfs_inum_in(id->inum, (char *)&dent->de_inum);
@@ -558,10 +559,12 @@ static int dir_l_search(struct fsck_inode *dip, 
identifier_t *id, unsigned int *
                        exit(1);
                }
                id->filename = (osi_filename_t *)malloc(sizeof(osi_filename_t));
+               /* FIXME: don't dereference NULL on failed malloc */
                memset(id->filename, 0, sizeof(osi_filename_t));

                id->filename->len = gfs16_to_cpu(dent->de_name_len);
                id->filename->name = malloc(id->filename->len);
+               /* FIXME: don't dereference NULL on failed malloc */
                memset(id->filename->name, 0, id->filename->len);

                memcpy(id->filename->name, (char *)dent+sizeof(struct 
gfs_dirent),
@@ -801,6 +804,7 @@ static int dir_split_leaf(struct fsck_inode *dip, uint32 
index, uint64 leaf_no)
            This code is complicated enough already.  */

        lp = (uint64 *)malloc(half_len * sizeof(uint64));
+       /* FIXME: don't dereference NULL on failed malloc */
        memset(lp, 0, half_len * sizeof(uint64));

        error = readi(dip, (char *)lp, start * sizeof(uint64),
diff --git a/gfs/gfs_fsck/super.c b/gfs/gfs_fsck/super.c
index b2c81f1..9c553f2 100644
--- a/gfs/gfs_fsck/super.c
+++ b/gfs/gfs_fsck/super.c
@@ -710,6 +710,7 @@ int gfs_rgindex_rebuild(struct fsck_sb *sdp, osi_list_t 
*ret_list,
                        /* 
------------------------------------------------------------- */
                        /* Allocate a new RG and index. */
                        calc_rgd = (struct fsck_rgrp *)malloc(sizeof(struct 
fsck_rgrp));
+                       /* FIXME: handle failed malloc */
                        memset(calc_rgd, 0, sizeof(struct fsck_rgrp));
                        calc_rgd->rd_sbd = sdp; /* hopefully this is not used */
                        osi_list_add_prev(&calc_rgd->rd_list, ret_list);
@@ -975,6 +976,7 @@ int gfs_rgindex_calculate(struct fsck_sb *sdp, osi_list_t 
*ret_list,
                                (rgs_per_subd - 1) * (adjust_subdevice_size / 
rgs_per_subd);
                
                calc_rgd = (struct fsck_rgrp *)malloc(sizeof(struct fsck_rgrp));
+               /* FIXME: handle failed malloc */
                memset(calc_rgd, 0, sizeof(struct fsck_rgrp));
                calc_rgd->rd_sbd = sdp; /* hopefully this is not used */
                osi_list_add_prev(&calc_rgd->rd_list, ret_list);
@@ -1117,6 +1119,7 @@ int ri_update(struct fsck_sb *sdp)
                        }
                        
                        rgd = (struct fsck_rgrp *)malloc(sizeof(struct 
fsck_rgrp));
+                       /* FIXME: handle failed malloc */
                        memset(rgd, 0, sizeof(struct fsck_rgrp));
                        rgd->rd_sbd = sdp;
                        osi_list_add_prev(&rgd->rd_list, &sdp->rglist);
diff --git a/gfs/libgfs/fs_dir.c b/gfs/libgfs/fs_dir.c
index 0d704d4..fe34b8a 100644
--- a/gfs/libgfs/fs_dir.c
+++ b/gfs/libgfs/fs_dir.c
@@ -544,6 +544,7 @@ static int dir_l_search(int disk_fd, struct gfs_inode *dip, 
identifier_t *id,
                        exit(1);
                }
                id->inum = (struct gfs_inum *)malloc(sizeof(struct gfs_inum));
+               /* FIXME: handle failed malloc */
                memset(id->inum, 0, sizeof(struct gfs_inum));

                gfs_inum_in(id->inum, (char *)&dent->de_inum);
@@ -553,10 +554,12 @@ static int dir_l_search(int disk_fd, struct gfs_inode 
*dip, identifier_t *id,
                        exit(1);
                }
                id->filename = (osi_filename_t *)malloc(sizeof(osi_filename_t));
+               /* FIXME: handle failed malloc */
                memset(id->filename, 0, sizeof(osi_filename_t));

                id->filename->len = gfs16_to_cpu(dent->de_name_len);
                id->filename->name = malloc(id->filename->len);
+               /* FIXME: handle failed malloc */
                memset(id->filename->name, 0, id->filename->len);

                memcpy(id->filename->name, (char *)dent+sizeof(struct 
gfs_dirent),
@@ -798,6 +801,7 @@ static int dir_split_leaf(int disk_fd, struct gfs_inode 
*dip, uint32 index,
            This code is complicated enough already.  */

        lp = (uint64 *)malloc(half_len * sizeof(uint64));
+       /* FIXME: handle failed malloc */
        memset(lp, 0, half_len * sizeof(uint64));

        error = readi(disk_fd, dip, (char *)lp, start * sizeof(uint64),
diff --git a/gfs/libgfs/inode.c b/gfs/libgfs/inode.c
index d7f4e53..b288ef6 100644
--- a/gfs/libgfs/inode.c
+++ b/gfs/libgfs/inode.c
@@ -122,6 +122,7 @@ static int fs_get_istruct(int disk_fd, struct gfs_sbd *sdp,
        }

        ip = (struct gfs_inode *)malloc(sizeof(struct gfs_inode));
+       /* FIXME: handle failed malloc */
        ip->i_num = *inum;

        ip->i_sbd = sdp;
diff --git a/gfs/libgfs/super.c b/gfs/libgfs/super.c
index afaf2bb..c479c27 100644
--- a/gfs/libgfs/super.c
+++ b/gfs/libgfs/super.c
@@ -344,6 +344,7 @@ int ri_update(int disk_fd, struct gfs_sbd *sdp)
                        goto fail;
                }
                rgd = (struct gfs_rgrpd *)malloc(sizeof(struct gfs_rgrpd));
+               /* FIXME: handle failed malloc */
                rgd->rd_sbd = sdp;
                osi_list_add_prev((osi_list_t *)&rgd->rd_list,
                                                  (osi_list_t 
*)&sdp->sd_rglist);
diff --git a/gfs2/edit/hexedit.c b/gfs2/edit/hexedit.c
index 534d8cb..bc17d2e 100644
--- a/gfs2/edit/hexedit.c
+++ b/gfs2/edit/hexedit.c
@@ -1259,6 +1259,7 @@ int display_indirect(struct iinfo *ind, int indblocks, 
int level, uint64_t start
                        char *tmpbuf;
                        
                        more_indir = malloc(sizeof(struct iinfo));
+                       /* FIXME: handle failed malloc */
                        tmpbuf = malloc(sbd.bsize);
                        if (tmpbuf) {
                                do_lseek(sbd.device_fd,
diff --git a/gfs2/edit/savemeta.c b/gfs2/edit/savemeta.c
index 693ac0f..a1523b3 100644
--- a/gfs2/edit/savemeta.c
+++ b/gfs2/edit/savemeta.c
@@ -292,6 +292,7 @@ int gfs1_rindex_read(struct gfs2_sbd *sdp, int fd, int 
*count1)
                        return -1;

                rgd = (struct rgrp_list *)malloc(sizeof(struct rgrp_list));
+               /* FIXME: handle failed malloc */
                memset(rgd, 0, sizeof(struct rgrp_list));
                osi_list_add_prev(&rgd->list, &sdp->rglist);

diff --git a/gfs2/fsck/initialize.c b/gfs2/fsck/initialize.c
index 1d2df6a..bb395cb 100644
--- a/gfs2/fsck/initialize.c
+++ b/gfs2/fsck/initialize.c
@@ -212,6 +212,7 @@ static int init_system_inodes(struct gfs2_sbd *sdp)

        gfs2_lookupi(sdp->master_dir, "statfs", 6, &sdp->md.statfs);
        buf = malloc(sdp->md.statfs->i_di.di_size);
+       /* FIXME: handle failed malloc */
        gfs2_readi(sdp->md.statfs, buf, 0, sdp->md.statfs->i_di.di_size);
        /* call gfs2_inum_range_in() to retrieve range */
        gfs2_statfs_change_in(&sc, buf);
diff --git a/gfs2/libgfs2/super.c b/gfs2/libgfs2/super.c
index 88708fe..c82221e 100644
--- a/gfs2/libgfs2/super.c
+++ b/gfs2/libgfs2/super.c
@@ -184,6 +184,7 @@ int rindex_read(struct gfs2_sbd *sdp, int fd, int *count1)
                        return -1;

                rgd = (struct rgrp_list *)malloc(sizeof(struct rgrp_list));
+               /* FIXME: handle failed malloc */
                memset(rgd, 0, sizeof(struct rgrp_list));
                osi_list_add_prev(&rgd->list, &sdp->rglist);

diff --git a/group/daemon/app.c b/group/daemon/app.c
index 30c11da..9ca2801 100644
--- a/group/daemon/app.c
+++ b/group/daemon/app.c
@@ -178,6 +178,7 @@ void extend_recover_event(group_t *g, event_t *ev, int 
nodeid)
        }

        id = malloc(sizeof(struct nodeid));
+       /* FIXME: handle failed malloc */
        id->nodeid = new_id_nodeid;
        list_add(&id->list, &ev->extended);
 }
@@ -274,6 +275,7 @@ struct recovery_set *add_recovery_set_cpg(int nodeid, int 
procdown)
                        if (node->nodeid == nodeid) {
                                log_group(g, "add to recovery set %d", nodeid);
                                re = malloc(sizeof(*re));
+                               /* FIXME: handle failed malloc */
                                memset(re, 0, sizeof(struct recovery_entry));
                                re->group = g;
                                list_add_tail(&re->list, &rs->entries);
@@ -1534,6 +1536,7 @@ int recover_current_event(group_t *g)
                }

                id = malloc(sizeof(struct nodeid));
+               /* FIXME: handle failed malloc */
                id->nodeid = rev->nodeid;
                list_add(&id->list, &ev->extended);
                log_group(g, "extend active rev %d with failed node %d",
diff --git a/group/daemon/cpg.c b/group/daemon/cpg.c
index aa3974b..6dd98cb 100644
--- a/group/daemon/cpg.c
+++ b/group/daemon/cpg.c
@@ -648,12 +648,14 @@ void deliver_cb(cpg_handle_t handle, struct cpg_name 
*group_name,
                          msg_type(msg->ms_type), nodeid);

        save = malloc(sizeof(struct save_msg));
+       /* FIXME: handle failed malloc */
        memset(save, 0, sizeof(struct save_msg));
        save->nodeid = nodeid;
        save->msg_len = data_len;

        if (data_len > sizeof(msg_t)) {
                buf = malloc(data_len);
+               /* FIXME: handle failed malloc */
                memcpy(buf, data, data_len);
                save->msg_long = buf;
                memcpy(&save->msg, data, sizeof(msg_t));
diff --git a/group/daemon/joinleave.c b/group/daemon/joinleave.c
index 4169392..95cc444 100644
--- a/group/daemon/joinleave.c
+++ b/group/daemon/joinleave.c
@@ -157,6 +157,7 @@ node_t *new_node(int nodeid)
        node_t *node;

        node = malloc(sizeof(*node));
+       /* FIXME: handle failed malloc */
        memset(node, 0, sizeof(*node));
        node->nodeid = nodeid;
        return node;
diff --git a/group/daemon/main.c b/group/daemon/main.c
index c598307..c875f14 100644
--- a/group/daemon/main.c
+++ b/group/daemon/main.c
@@ -485,6 +485,7 @@ static int do_get_groups(int ci, int argc, char **argv)
        int rv, count = 0, max = atoi(argv[1]);

        data = malloc(sizeof(group_data_t));
+       /* FIXME: handle failed malloc */
        count = 0;

        list_for_each_entry(g, &gd_groups, list) {
@@ -588,6 +589,7 @@ static void do_send(char *name, int level, int len, char 
*data)

        total = sizeof(msg_t) + len;
        buf = malloc(total);
+       /* FIXME: handle failed malloc */
        memset(buf, 0, total);

        memcpy(buf + sizeof(msg_t), data, len);
diff --git a/group/dlm_controld/plock.c b/group/dlm_controld/plock.c
index 3a95caf..bb47b05 100644
--- a/group/dlm_controld/plock.c
+++ b/group/dlm_controld/plock.c
@@ -1618,6 +1618,7 @@ static int unpack_section_buf(struct lockspace *ls, char 
*numbuf, int buflen)
        for (i = 0; i < count; i++) {
                if (!pp->waiter) {
                        po = malloc(sizeof(struct posix_lock));
+                       /* FIXME: handle failed malloc */
                        po->start       = le64_to_cpu(pp->start);
                        po->end         = le64_to_cpu(pp->end);
                        po->owner       = le64_to_cpu(pp->owner);
@@ -1627,6 +1628,7 @@ static int unpack_section_buf(struct lockspace *ls, char 
*numbuf, int buflen)
                        list_add_tail(&po->list, &r->locks);
                } else {
                        w = malloc(sizeof(struct lock_waiter));
+                       /* FIXME: handle failed malloc */
                        w->info.start   = le64_to_cpu(pp->start);
                        w->info.end     = le64_to_cpu(pp->end);
                        w->info.owner   = le64_to_cpu(pp->owner);
diff --git a/group/gfs_controld/plock.c b/group/gfs_controld/plock.c
index 0b485a2..c441b25 100644
--- a/group/gfs_controld/plock.c
+++ b/group/gfs_controld/plock.c
@@ -1836,6 +1836,7 @@ static int unpack_section_buf(struct mountgroup *mg, char 
*numbuf, int buflen)
        for (i = 0; i < count; i++) {
                if (!pp->waiter) {
                        po = malloc(sizeof(struct posix_lock));
+                       /* FIXME: handle failed malloc */
                        po->start       = le64_to_cpu(pp->start);
                        po->end         = le64_to_cpu(pp->end);
                        po->owner       = le64_to_cpu(pp->owner);
@@ -1845,6 +1846,7 @@ static int unpack_section_buf(struct mountgroup *mg, char 
*numbuf, int buflen)
                        list_add_tail(&po->list, &r->locks);
                } else {
                        w = malloc(sizeof(struct lock_waiter));
+                       /* FIXME: handle failed malloc */
                        w->info.start   = le64_to_cpu(pp->start);
                        w->info.end     = le64_to_cpu(pp->end);
                        w->info.owner   = le64_to_cpu(pp->owner);
diff --git a/rgmanager/src/daemons/clurmtabd_lib.c 
b/rgmanager/src/daemons/clurmtabd_lib.c
index 7c869df..aa216a2 100644
--- a/rgmanager/src/daemons/clurmtabd_lib.c
+++ b/rgmanager/src/daemons/clurmtabd_lib.c
@@ -204,6 +204,7 @@ rmtab_insert(rmtab_node **head, rmtab_node *pre, char *host,

        /* Copy in info */
        rnew = malloc(sizeof(*rnew));
+       /* FIXME: handle failed malloc */
        memset(rnew, 0, sizeof(*rnew));
        rnew->rn_hostname = strdup(host);
        rnew->rn_path = strdup(path);
diff --git a/rgmanager/src/daemons/dtest.c b/rgmanager/src/daemons/dtest.c
index 8ee27e5..a42eed1 100644
--- a/rgmanager/src/daemons/dtest.c
+++ b/rgmanager/src/daemons/dtest.c
@@ -274,6 +274,7 @@ dtest_shell(void)
        dep_op_t *ops = NULL, *op;
        
        nodes = malloc(sizeof(int)*nodes_all_count);
+       /* FIXME: handle failed malloc */
        
        while (!done) {
                
@@ -325,6 +326,7 @@ dtest_shell(void)
                                        free(nodes_online);
                                
                                nodes_online = malloc(sizeof(int) * cnt);
+                               /* FIXME: handle failed malloc */
                                
                                for (x = 0; x < cnt; x++)
                                        nodes_online[x] = nodes[x];
-- 
1.6.0.2.514.g23abd3


>From 13ac364cc61333595c18a518f5140498e022a697 Mon Sep 17 00:00:00 2001
From: Jim Meyering <[EMAIL PROTECTED]>
Date: Mon, 13 Oct 2008 17:21:54 +0200
Subject: [PATCH] Remove unused local variable, buf,

* gfs2/edit/savemeta.c (save_inode_data): ...along with malloc and free.
---
 gfs2/edit/savemeta.c |    3 ---
 1 files changed, 0 insertions(+), 3 deletions(-)

diff --git a/gfs2/edit/savemeta.c b/gfs2/edit/savemeta.c
index a1523b3..9587d58 100644
--- a/gfs2/edit/savemeta.c
+++ b/gfs2/edit/savemeta.c
@@ -583,11 +583,9 @@ void save_inode_data(int out_fd)
        osi_list_t *prev_list, *cur_list, *tmp;
        struct gfs2_buffer_head *metabh, *mybh;
        int i;
-       char *buf;

        for (i = 0; i < GFS2_MAX_META_HEIGHT; i++)
                osi_list_init(&metalist[i]);
-       buf = malloc(sbd.bsize);
        metabh = bread(&sbd, block);
        inode = inode_get(&sbd, metabh);
        height = inode->i_di.di_height;
@@ -662,7 +660,6 @@ void save_inode_data(int out_fd)
                brelse(metabh, not_updated);
        }
        inode_put(inode, not_updated);
-       free(buf);
 }

 void get_journal_inode_blocks(void)
-- 
1.6.0.2.514.g23abd3


>From 4816b957b4cfc9b478522adfba238cb2a3c45404 Mon Sep 17 00:00:00 2001
From: Jim Meyering <[EMAIL PROTECTED]>
Date: Mon, 13 Oct 2008 18:12:14 +0200
Subject: [PATCH] add comments marking unchecked strdup calls

* config/tools/ccs_tool/editconf.c (add_fence_args):
---
 config/tools/ccs_tool/editconf.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/config/tools/ccs_tool/editconf.c b/config/tools/ccs_tool/editconf.c
index 53b0ed6..28e24da 100644
--- a/config/tools/ccs_tool/editconf.c
+++ b/config/tools/ccs_tool/editconf.c
@@ -447,6 +447,7 @@ static void add_fence_args(xmlNode *fencenode, int argc, 
char **argv, int optind
                char *equals;

                prop = strdup(argv[i]);
+               /* FIXME: handle failed strdup */
                equals = strchr(prop, '=');
                if (!equals)
                        die("option '%s' is not opt=value pair\n", prop);
-- 
1.6.0.2.514.g23abd3

Reply via email to