diff options
-rw-r--r-- | src/libsystemd-bus/bus-match.c | 5 | ||||
-rw-r--r-- | src/shared/util.h | 2 |
2 files changed, 4 insertions, 3 deletions
diff --git a/src/libsystemd-bus/bus-match.c b/src/libsystemd-bus/bus-match.c index fed25c1a2a..37e7cc71f3 100644 --- a/src/libsystemd-bus/bus-match.c +++ b/src/libsystemd-bus/bus-match.c @@ -725,7 +725,7 @@ static int parse_match( } } - if (!greedy_realloc((void**) &value, &value_allocated, j + 2)) { + if (!GREEDY_REALLOC(value, value_allocated, j + 2)) { r = -ENOMEM; goto fail; } @@ -744,8 +744,7 @@ static int parse_match( } else u = 0; - if (!greedy_realloc((void**) &components, &components_allocated, - (n_components + 1) * sizeof(struct match_component))) { + if (!GREEDY_REALLOC(components, components_allocated, n_components + 1)) { r = -ENOMEM; goto fail; } diff --git a/src/shared/util.h b/src/shared/util.h index a8e962ea50..99ec0a39bd 100644 --- a/src/shared/util.h +++ b/src/shared/util.h @@ -618,6 +618,8 @@ char *strextend(char **x, ...); char *strrep(const char *s, unsigned n); void* greedy_realloc(void **p, size_t *allocated, size_t need); +#define GREEDY_REALLOC(array, allocated, need) \ + greedy_realloc((void**) &(array), &(allocated), (sizeof *array) * (need)) static inline void _reset_errno_(int *saved_errno) { errno = *saved_errno; |