--- Decrypt.cc.jn 2002-12-06 00:44:32.000000000 +0100 +++ Decrypt.cc 2005-01-14 13:38:48.192647128 +0100 @@ -132,13 +132,19 @@ GBool Decrypt::makeFileKey2(int encVersi Guchar *buf; Guchar test[32]; Guchar fState[256]; - Guchar tmpKey[16]; + Guchar *tmpKey; Guchar fx, fy; int len, i, j; GBool ok; + // check whether we have non-zero keyLength + if ( !keyLength ) { + return gFalse; + } + // generate file key buf = (Guchar *)gmalloc(68 + fileID->getLength()); + tmpKey = (Guchar *)gmalloc(keyLength * sizeof(Guchar)); if (userPassword) { len = userPassword->getLength(); if (len < 32) { @@ -191,6 +197,7 @@ GBool Decrypt::makeFileKey2(int encVersi ok = gFalse; } + gfree(tmpKey); gfree(buf); return ok; }