View | Details | Raw Unified | Return to bug 2682
Collapse All | Expand All

(-)a/ssh-agent.c (-3 / +10 lines)
Lines 821-827 send: Link Here
821
static void
821
static void
822
process_remove_smartcard_key(SocketEntry *e)
822
process_remove_smartcard_key(SocketEntry *e)
823
{
823
{
824
	char *provider = NULL, *pin = NULL;
824
	char *provider = NULL, *pin = NULL, canonical_provider[PATH_MAX];
825
	int r, version, success = 0;
825
	int r, version, success = 0;
826
	Identity *id, *nxt;
826
	Identity *id, *nxt;
827
	Idtab *tab;
827
	Idtab *tab;
Lines 831-836 process_remove_smartcard_key(SocketEntry *e) Link Here
831
		fatal("%s: buffer error: %s", __func__, ssh_err(r));
831
		fatal("%s: buffer error: %s", __func__, ssh_err(r));
832
	free(pin);
832
	free(pin);
833
833
834
	if (realpath(provider, canonical_provider) == NULL) {
835
		verbose("failed PKCS#11 add of \"%.100s\": realpath: %s",
836
		    provider, strerror(errno));
837
		goto send;
838
	}
839
840
	debug("%s: remove %.100s", __func__, canonical_provider);
834
	for (version = 1; version < 3; version++) {
841
	for (version = 1; version < 3; version++) {
835
		tab = idtab_lookup(version);
842
		tab = idtab_lookup(version);
836
		for (id = TAILQ_FIRST(&tab->idlist); id; id = nxt) {
843
		for (id = TAILQ_FIRST(&tab->idlist); id; id = nxt) {
Lines 838-851 process_remove_smartcard_key(SocketEntry *e) Link Here
838
			/* Skip file--based keys */
845
			/* Skip file--based keys */
839
			if (id->provider == NULL)
846
			if (id->provider == NULL)
840
				continue;
847
				continue;
841
			if (!strcmp(provider, id->provider)) {
848
			if (!strcmp(canonical_provider, id->provider)) {
842
				TAILQ_REMOVE(&tab->idlist, id, next);
849
				TAILQ_REMOVE(&tab->idlist, id, next);
843
				free_identity(id);
850
				free_identity(id);
844
				tab->nentries--;
851
				tab->nentries--;
845
			}
852
			}
846
		}
853
		}
847
	}
854
	}
848
	if (pkcs11_del_provider(provider) == 0)
855
	if (pkcs11_del_provider(canonical_provider) == 0)
849
		success = 1;
856
		success = 1;
850
	else
857
	else
851
		error("process_remove_smartcard_key:"
858
		error("process_remove_smartcard_key:"

Return to bug 2682