mirror of
git://git.gnupg.org/gnupg.git
synced 2025-07-03 22:56:33 +02:00
scd: Add explict functions for 'app' reference counting.
* scd/app.c (app_ref): New. (app_unref): New. (release_application): Renamed to ... (app_unref_locked): this and remove arg locked_already. Change callers to use this or app_ref. * scd/command.c (open_card_with_request): (cmd_pksign, cmd_pkauth, cmd_pkdecrypt): Use app_ref and app_unref instead of accessing the counter directly. -- This is better in case we need to debug stuff. There is a real change however: We now lock and unlock the app before changing the reference count. The whole app locking business should be reviewed because we pass pointers along without immediately bumping the refcount. Signed-off-by: Werner Koch <wk@gnupg.org>
This commit is contained in:
parent
70f7b26287
commit
c594dcfc93
4 changed files with 55 additions and 23 deletions
|
@ -164,7 +164,11 @@ gpg_error_t select_application (ctrl_t ctrl, const char *name, app_t *r_app,
|
|||
int scan, const unsigned char *serialno_bin,
|
||||
size_t serialno_bin_len);
|
||||
char *get_supported_applications (void);
|
||||
void release_application (app_t app, int locked_already);
|
||||
|
||||
app_t app_ref (app_t app);
|
||||
void app_unref (app_t app);
|
||||
void app_unref_locked (app_t app);
|
||||
|
||||
gpg_error_t app_munge_serialno (app_t app);
|
||||
gpg_error_t app_write_learn_status (app_t app, ctrl_t ctrl,
|
||||
unsigned int flags);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue