It was motivated by `ddclient`:
* `return <<`:
https://github.com/ddclient/ddclient/blob/e0611ab192d6b8d3d2b09d6868d063ca5591ad02/ddclient.in#L7200-L7223
* `fun(<<)` (although this particular example is not handled by this PR due to
string literal preceding `<<`):
https://github.com/ddclient/ddc
match any <
Completely agree with everything you've said. I've actually had a look at
sqlite API myself before creating PR and couldn't find anything that would work
per database. I didn't feel qualified to make decision on stopping/altering
logging within rpm either. Hence this fix.
I'd say it's not only
When db is opened rpm registers `rpmlog()` based callback within sqlite and
passes `rpmdb` as user data. When db is closed and `rpmdb` gets eventually
freed it might lead to UAF if another sqlite3 db is opened different than rpm
db.
It happens ie if normal user invokes `dnf download`. First rpm
What I'd like to achieve is to access `%buildsubdir` in `%prep` after `%setup`
was called. It appears that RPM first parses and evaluates all macros in
`%prep` and only then executes `%setup` which pushes `%buildsubdir`. So my
question is there any way to defer macro expansion or is there some d