rpmKeyring rpmKeyringFree(rpmKeyring keyring) { if (keyring == NULL) { return NULL; } if (keyring->nrefs > 1) { return rpmKeyringUnlink(keyring); } if (keyring->keys) { for (int i = 0; i < keyring->numkeys; i++) { keyring->keys[i] = rpmPubkeyFree(keyring->keys[i]); } free(keyring->keys); } free(keyring); return NULL; }
rpmKeyring rpmKeyringFree(rpmKeyring keyring) { if (keyring == NULL) return NULL; if (keyring->nrefs > 1) return rpmKeyringUnlink(keyring); if (keyring->keys) { int i; /*@-unqualifiedtrans @*/ for (i = 0; i < (int)keyring->numkeys; i++) keyring->keys[i] = rpmPubkeyFree(keyring->keys[i]); /*@=unqualifiedtrans @*/ keyring->keys = _free(keyring->keys); } keyring = _free(keyring); return NULL; }