#include <config.h>
-#define _GNU_SOURCE // for strndup, asprintf
-
#include <stdio.h>
#include <stdlib.h>
#include <stddef.h>
};
static void
-free_words (struct word *words, int nr_words)
+free_words (struct word *words, size_t nr_words)
{
size_t i;
size_t i; \
size_t n = count_strings (strs); \
\
- if ( ! xalloc_oversized (nr_words + n, sizeof (struct word))) { \
+ if ( n > 0 && ! xalloc_oversized (nr_words + n, sizeof (struct word))) { \
struct word *w; \
w = realloc (words, sizeof (struct word) * (nr_words + n)); \
\
nr_words++; \
} \
} \
- free (strs); \
} \
+ free (strs); \
} \
} while (0)
/* Is it a device? */
- if (len < 5 || strncmp (text, "/dev/", 5) == 0) {
+ if (len < 5 || STREQLEN (text, "/dev/", 5)) {
/* Get a list of everything that can possibly begin with /dev/ */
strs = guestfs_list_devices (g);
APPEND_STRS_AND_FREE;