commit f895acd285366cf58cc3c97b5f188fecbfd782a8 Author: Panu Matilainen Date: Mon Jan 4 12:20:09 2010 +0200 Always free locally defined macros when they go out of scope - Prior to this, local defines in constructs like %{!?foo: %define foo bar} would remain defined until a parametrized macro gets called, causing obscure and confusing errors in specs such as RhBug:551971 and countless others. Use of %global is now always required for such constructs. diff --git a/rpmio/macro.c b/rpmio/macro.c index 88fb583..11db47d 100644 --- a/rpmio/macro.c +++ b/rpmio/macro.c @@ -1344,9 +1344,8 @@ expandMacro(MacroBuf mb) me->used++; /* Mark macro as used */ } - /* Free args for "%name " macros with opts */ - if (me->opts != NULL) - freeArgs(mb); + /* Free locally defined macros, such as macro options */ + freeArgs(mb); s = se; }