summaryrefslogtreecommitdiff
path: root/utils
diff options
context:
space:
mode:
authorWenchao Hao <haowenchao@huawei.com>2020-11-24 16:51:21 +0800
committerWenchao Hao <haowenchao@huawei.com>2020-12-12 11:44:08 +0800
commit67c757749b91efa26352316a6077eab9ceb9a0bd (patch)
tree81958c8f187fcb2ad8b07e3a4a54f4fc8cf39878 /utils
parentcaa45e53c9ba163238deae6a3c5f81b33e5be4a7 (diff)
downloadopen-iscsi-67c757749b91efa26352316a6077eab9ceb9a0bd.tar.gz
open-iscsi: Fix invalid pointer deference in find_initiator()
If calloc() returns NULL just return ENOMEM; if strdup() returns NULL we should free dev and return errno. Signed-off-by: Wenchao Hao <haowenchao@huawei.com> Signed-off-by: Zhiqiang Liu <liuzhiqiang26@huawei.com>
Diffstat (limited to 'utils')
-rw-r--r--utils/fwparam_ibft/fwparam_ppc.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/utils/fwparam_ibft/fwparam_ppc.c b/utils/fwparam_ibft/fwparam_ppc.c
index 429d45c..b5eaa00 100644
--- a/utils/fwparam_ibft/fwparam_ppc.c
+++ b/utils/fwparam_ibft/fwparam_ppc.c
@@ -332,9 +332,16 @@ static int find_initiator(const char *fpath, const struct stat *sb, int tflag,
"/aliases/iscsi-disk"))) {
if (dev_count < OFWDEV_MAX) {
- ofwdevs[dev_count++] = dev =
- calloc(sizeof(struct ofw_dev), 1);
+ dev = calloc(sizeof(struct ofw_dev), 1);
+ if (!dev)
+ return -ENOMEM;
+
dev->prop_path = strdup(fpath + devtree_offset);
+ if (!dev->prop_path) {
+ free(dev);
+ return errno;
+ }
+ ofwdevs[dev_count++] = dev;
}
}
return 0;