struct mpentry * find_mpe (char * wwid);
char * get_mpe_wwid (char * alias);
+struct hwentry * alloc_hwe (void);
struct mpentry * alloc_mpe (void);
void free_hwe (struct hwentry * hwe);
{
struct hwentry * hwe;
- hwe = (struct hwentry *)MALLOC(sizeof(struct hwentry));
+ hwe = alloc_hwe();
if (!hwe)
return 1;
if (!vector_alloc_slot(conf->hwtable)) {
- FREE(hwe);
+ free_hwe(hwe);
return 1;
}
vector_set_slot(conf->hwtable, hwe);
{
struct mpentry * mpe;
- mpe = (struct mpentry *)MALLOC(sizeof(struct mpentry));
+ mpe = alloc_mpe();
if (!mpe)
return 1;
if (!vector_alloc_slot(conf->mptable)) {
- FREE(mpe);
+ free_mpe(mpe);
return 1;
}
vector_set_slot(conf->mptable, mpe);
vector vec = NULL;
vector elements = vector_alloc();
+ if (!elements)
+ return NULL;
+
buf = (char *) MALLOC(MAXBUF);
if (!buf)
return NULL;
- if (!elements)
- goto out;
-
while (read_line(buf, MAXBUF)) {
vec = alloc_strvec(buf);
if (vec) {
for (i = 0; i < VECTOR_SIZE(vec); i++) {
str = VECTOR_SLOT(vec, i);
dup = (char *) MALLOC(strlen(str) + 1);
+ if (!dup)
+ goto out;
memcpy(dup, str, strlen(str));
if (!vector_alloc_slot(elements)) {
alloc =
REALLOC(alloc, sizeof (char *) * (len + 1));
tmp = VECTOR_SLOT(strvec, i-1);
- if (*str != '"' && *tmp != '"')
+ if (alloc && *str != '"' && *tmp != '"')
strncat(alloc, " ", 1);
}
- if (i != VECTOR_SIZE(strvec)-1)
+ if (alloc && i != VECTOR_SIZE(strvec)-1)
strncat(alloc, str, strlen(str));
}
} else {
alloc = MALLOC(sizeof (char *) * (size + 1));
- memcpy(alloc, str, size);
+ if (alloc)
+ memcpy(alloc, str, size);
}
return alloc;
}
uev_trigger *my_uev_trigger;
void * my_trigger_data;
-struct uevent * alloc_uevent (void)
+static struct uevent * alloc_uevent (void)
{
return (struct uevent *)MALLOC(sizeof(struct uevent));
}
{
if (read_all(fd, len, sizeof(*len)) != sizeof(*len)) return -1;
(*buf) = MALLOC(*len);
+ if (!*buf)
+ return -1;
if (read_all(fd, *buf, *len) != *len) {
FREE(*buf);
return -1;