if (buf_len >= len)
*data = (uint8_t *)buf;
else {
- free(buf);
if ((*data = malloc(len)) == NULL)
len = 0;
}
if (len != 0)
- len = hwaddr_aton(*data, buf);
+ (void)hwaddr_aton(*data, buf);
+ if (buf_len < len)
+ free(buf);
break;
}
}
}
}
+ /* Regardless of what happens we will create a DUID to use. */
+ *d = data;
+
/* No file? OK, lets make one based on our interface */
if (ifp->family == ARPHRD_NETROM) {
logger(ifp->ctx, LOG_WARNING,
}
}
- *d = data;
if (!(fp = fopen(DUID, "w"))) {
logger(ifp->ctx, LOG_ERR, "error writing DUID: %s: %m", DUID);
return duid_make(data, ifp, DUID_LL);