diff options
author | Marcus Brinkmann <[email protected]> | 2003-08-20 16:53:40 +0000 |
---|---|---|
committer | Marcus Brinkmann <[email protected]> | 2003-08-20 16:53:40 +0000 |
commit | e8cf79c977f81a53487e37d4b284f6f4796617c8 (patch) | |
tree | 9781a4ae4a01c053a2a5bcebd324911fe8b73596 /sm/encrypt.c | |
parent | * scdaemon.c, scdaemon.h: New option --pcsc-driver. (diff) | |
download | gnupg-e8cf79c977f81a53487e37d4b284f6f4796617c8.tar.gz gnupg-e8cf79c977f81a53487e37d4b284f6f4796617c8.zip |
2003-08-20 Marcus Brinkmann <[email protected]>
* encrypt.c (encode_session_key): Allocate enough space. Cast key
byte to unsigned char to prevent sign extension.
(encrypt_dek): Check return value before error.
Diffstat (limited to 'sm/encrypt.c')
-rw-r--r-- | sm/encrypt.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/sm/encrypt.c b/sm/encrypt.c index b6770a4b5..4eef20c73 100644 --- a/sm/encrypt.c +++ b/sm/encrypt.c @@ -134,11 +134,11 @@ encode_session_key (DEK dek, gcry_sexp_t * r_data) int i; int rc; - p = xmalloc (64+dek->keylen); + p = xmalloc (64 + 2 * dek->keylen); strcpy (p, "(data\n (flags pkcs1)\n (value #"); for (i=0; i < dek->keylen; i++) { - sprintf (tmp, "%02x", dek->key[i]); + sprintf (tmp, "%02x", (unsigned char) dek->key[i]); strcat (p, tmp); } strcat (p, "#))\n"); @@ -184,6 +184,7 @@ encrypt_dek (const DEK dek, KsbaCert cert, char **encval) /* put the encoded cleartext into a simple list */ rc = encode_session_key (dek, &s_data); + if (rc) { log_error ("encode_session_key failed: %s\n", gpg_strerror (rc)); return rc; |