X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=crypt.c;h=653b1a2452cdc85215d916c1abd35f641800dcf1;hp=34407d782b910cab8f7e87aa269628d9a97aebf3;hb=d830824b39d538a9311ed8a490b8265dc2caa73a;hpb=2ed89c59f0efcd0a2763f47c7d3455663241e623 diff --git a/crypt.c b/crypt.c index 34407d78..653b1a24 100644 --- a/crypt.c +++ b/crypt.c @@ -100,12 +100,14 @@ int para_decrypt_buffer(char *key_file, unsigned char *outbuf, unsigned char *in int para_decrypt_challenge(char *key_file, long unsigned *challenge_nr, unsigned char *inbuf, int rsa_inlen) { - unsigned char *rsa_out = OPENSSL_malloc(128); + unsigned char *rsa_out = OPENSSL_malloc(rsa_inlen + 1); int ret = para_decrypt_buffer(key_file, rsa_out, inbuf, rsa_inlen); - if (ret >= 0) + if (ret >= 0) { + rsa_out[ret] = '\0'; ret = sscanf((char *)rsa_out, "%lu", challenge_nr) == 1? 1 : -E_CHALLENGE; + } OPENSSL_free(rsa_out); return ret; }