1 --- gpdf-2.8.2.orig/xpdf/Decrypt.cc
2 +++ gpdf-2.8.2/xpdf/Decrypt.cc
7 + // check whether we have non-zero keyLength
12 // try using the supplied owner password to generate the user password
13 *ownerPasswordOk = gFalse;
17 memcpy(test2, ownerKey->getCString(), 32);
18 for (i = 19; i >= 0; --i) {
19 - for (j = 0; j < keyLength; ++j) {
20 + for (j = 0; j < keyLength && j < 16; ++j) {
21 tmpKey[j] = test[j] ^ i;
23 rc4InitKey(tmpKey, keyLength, fState);
28 + // check whether we have non-zero keyLength
34 buf = (Guchar *)gmalloc(68 + fileID->getLength());
37 } else if (encRevision == 3) {
38 memcpy(test, userKey->getCString(), 32);
39 for (i = 19; i >= 0; --i) {
40 - for (j = 0; j < keyLength; ++j) {
41 + for (j = 0; j < keyLength && j < 16; ++j) {
42 tmpKey[j] = fileKey[j] ^ i;
44 rc4InitKey(tmpKey, keyLength, fState);