diff options
-rw-r--r-- | runtime/Makefile.am | 2 | ||||
-rw-r--r-- | runtime/libgcry.c | 4 | ||||
-rw-r--r-- | runtime/lmcry_gcry.c | 8 |
3 files changed, 10 insertions, 4 deletions
diff --git a/runtime/Makefile.am b/runtime/Makefile.am index be68ce60..e1f0673c 100644 --- a/runtime/Makefile.am +++ b/runtime/Makefile.am @@ -184,7 +184,7 @@ if ENABLE_LIBGCRYPT pkglib_LTLIBRARIES += lmcry_gcry.la lmcry_gcry_la_SOURCES = lmcry_gcry.c lmcry_gcry.h libgcry.c libgcry.h lmcry_gcry_la_CPPFLAGS = $(RSRT_CFLAGS) $(LIBGCRYPT_CFLAGS) - lmcry_gcry_la_LDFLAGS = -module -avoid-version + lmcry_gcry_la_LDFLAGS = -module -avoid-version `libgcrypt-config --libs` #lmcry_gcry_la_LIBADD = libgcry.la $(LIBGCRYPT_LIBS) lmcry_gcry_la_LIBADD = $(LIBGCRYPT_LIBS) endif diff --git a/runtime/libgcry.c b/runtime/libgcry.c index 5f1dbf58..c1ab3abf 100644 --- a/runtime/libgcry.c +++ b/runtime/libgcry.c @@ -108,8 +108,10 @@ rsgcrySetKey(gcryctx ctx, unsigned char *key, uint16_t keyLen) uint16_t reqKeyLen = gcry_cipher_get_algo_keylen(GCRY_CIPHER); int r; - if(keyLen != reqKeyLen) + if(keyLen != reqKeyLen) { r = reqKeyLen; + goto done; + } ctx->keyLen = keyLen; ctx->key = malloc(keyLen); memcpy(ctx->key, key, keyLen); diff --git a/runtime/lmcry_gcry.c b/runtime/lmcry_gcry.c index ce0fef2f..31e648fc 100644 --- a/runtime/lmcry_gcry.c +++ b/runtime/lmcry_gcry.c @@ -92,6 +92,8 @@ SetCnfParam(void *pT, struct nvlst *lst) uchar *cstr; uchar *key = NULL; struct cnfparamvals *pvals; + DEFiRet; + pvals = nvlstGetParams(lst, &pblk, NULL); if(Debug) { dbgprintf("param blk in lmcry_gcry:\n"); @@ -125,8 +127,9 @@ SetCnfParam(void *pT, struct nvlst *lst) "config file is highly insecure - DO NOT USE FOR PRODUCTION"); r = rsgcrySetKey(pThis->ctx, key, strlen((char*)key)); if(r > 0) { - errmsg.LogError(0, RS_RET_ERR, "Key length %d expected, but " + errmsg.LogError(0, RS_RET_INVALID_PARAMS, "Key length %d expected, but " "key of length %d given", r, strlen((char*)key)); + ABORT_FINALIZE(RS_RET_INVALID_PARAMS); } } @@ -135,7 +138,8 @@ SetCnfParam(void *pT, struct nvlst *lst) memset(key, 0, strlen((char*)key)); free(key); } - return RS_RET_OK; +finalize_it: + RETiRet; } |