diff -ur poppler-0.5.1.orig/poppler/XRef.cc poppler-0.5.1/poppler/XRef.cc --- poppler-0.5.1.orig/poppler/XRef.cc 2006-04-01 14:01:59.000000000 +0200 +++ poppler-0.5.1/poppler/XRef.cc 2006-04-01 14:01:21.000000000 +0200 @@ -937,19 +937,23 @@ int XRef::getNumEntry(int offset) const { - int res = -1; - int resOffset = -1; - XRefEntry e; - for (int i = 0; i < size; ++i) + if (size > 0) { - e = entries[i]; - if (e.offset < offset && e.offset > resOffset) + int res = 0; + Guint resOffset = entries[0].offset; + XRefEntry e; + for (int i = 1; i < size; ++i) { - res = i; - resOffset = e.offset; + e = entries[i]; + if (e.offset < offset && e.offset >= resOffset) + { + res = i; + resOffset = e.offset; + } } + return res; } - return res; + else return -1; } Guint XRef::strToUnsigned(char *s) {