--- rpmio/macro.c.orig 2011-05-17 08:43:40.000000000 +0000 +++ rpmio/macro.c 2011-05-17 08:44:48.000000000 +0000 @@ -1016,12 +1016,12 @@ expandMacro(MacroBuf mb, const char *src char *source = NULL; /* Handle non-terminated substrings by creating a terminated copy */ - if (slen > 0) { - source = xmalloc(slen + 1); - strncpy(source, src, slen); - source[slen] = '\0'; - s = source; - } + if (!slen) + slen = strlen(src); + source = xmalloc(slen + 1); + strncpy(source, src, slen); + source[slen] = '\0'; + s = source; if (mb->buf == NULL) { size_t blen = MACROBUFSIZ + strlen(s);