[PATCH] ssh-pkcs11: allow providing unconditional pin code for PKCS11

Peter Stuge peter at stuge.se
Wed Nov 16 22:20:20 AEDT 2016


Juha-Matti Tapio wrote:
> +pkcs11_read_pinfile()
..
> +	if ((f = fopen(pinfilename, "r")) == NULL) {
> +		debug("failed to read SSH_PKCS11_PINFILE");
> +		return NULL;
> +	}
> +	if (fgets(buf, SSH_MAX_PKCS11_PIN_BYTES, f) == NULL)
> +		return NULL;

This leaks the open file on error.


> +	fclose(f);
> +
> +	/* truncate first line and ignore the rest */
> +	for (i = 0; buf[i] && i < SSH_MAX_PKCS11_PIN_BYTES; i++) {
> +		if (buf[i] == '\n' || buf[i] == '\r') {
> +			buf[i] = '\0';
> +			break;
> +		}
> +	}

Why not just a call to strtok() ?


> +	return xstrdup(buf);

Does this memory get freed somewhere?


I don't think this patch is ready yet, and I don't know if this
functionality is really desirable. Would it be an option to store the
pin itself in the environment? HSM seems a bit pointless if a PIN
must be stored in plain text on disk..


//Peter


More information about the openssh-unix-dev mailing list