*size = 0;
- log = malloc(xfer);
+ log = __nvme_alloc(xfer);
if (!log) {
errno = ENOMEM;
return -1;
}
*size = (dalb + 1) * xfer;
- tmp = realloc(log, *size);
+ tmp = __nvme_realloc(log, *size);
if (!tmp) {
errno = ENOMEM;
return -1;
void *__nvme_alloc(size_t len);
+void *__nvme_realloc(void *p, size_t len);
+
#if (LOG_FUNCNAME == 1)
#define __nvme_log_func __func__
#else
{
nvme_ctrl_t c, p;
_cleanup_free_ char *addr = NULL, *address = NULL;
- char *a, *e;
+ char *a = NULL, *e = NULL;
_cleanup_free_ char *transport = NULL;
char *traddr = NULL, *trsvcid = NULL;
char *host_traddr = NULL, *host_iface = NULL;
#include <stdbool.h>
#include <string.h>
#include <errno.h>
+#include <malloc.h>
#include <sys/stat.h>
#include <fcntl.h>
memset(p, 0, _len);
return p;
}
+
+void *__nvme_realloc(void *p, size_t len)
+{
+ size_t old_len = malloc_usable_size(p);
+
+ void *result = __nvme_alloc(len);
+
+ if (p) {
+ memcpy(result, p, min(old_len, len));
+ free(p);
+ }
+
+ return result;
+}
*/
char *startswith(const char *s, const char *prefix);
+#define min(x, y) ((x) > (y) ? (y) : (x))
+
#define __round_mask(val, mult) ((__typeof__(val))((mult)-1))
/**