On Thu, 28 Dec 2023 at 17:24, Sam Varshavchik <mrsam@xxxxxxxxxxxxxxx> wrote:
Stephen Smoogen writes:
> I am trying to figure out the logic of this section:
>
>
> ```
>
> static char * lastUname = NULL; // So lastUname is NULL
> static uid_t lastUid;
>
> if (!thisUname) {
> lastUname = rfree(lastUname); // lastUname should still be NULL and
> we are freeing NULL and setting itself back to NULL.
> return -1;
>
> ```
>
>
>
> I expect this is where I am not understanding something basic in C from too
> many years in non-pointer land. I looked at the change of these lines and
> they date back to this commit.
This is a fairly common kind of simple caching to avoid expensive
username/userid and groupname/groupid lookups by caching the last one. This
Yeah I completely forgot that static allows for caching so I was misreading this as 'always set to NULL at the beginning.'
https://github.com/rpm-software-management/rpm/issues/2826
And thanks for opening a bug. I will watch to see what happens.
Stephen Smoogen, Red Hat Automotive
Let us be kind to one another, for most of us are fighting a hard battle. -- Ian MacClaren-- _______________________________________________ devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/ List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines List Archives: https://lists.fedoraproject.org/archives/list/devel@xxxxxxxxxxxxxxxxxxxxxxx Do not reply to spam, report it: https://pagure.io/fedora-infrastructure/new_issue