From: Will L. <wi...@me...> - 2007-02-15 00:40:23
|
Hi All, we encountered a seg fault today while building an index. i tracked it down to FieldsReader.cpp, where a call to fieldInfo(int) comes back with a NULL FieldInfo and it's then dereferenced. i have an embarrassingly simple patch for this (see below) and i was wondering if this could have some other ill side effect. i think this came up because our index files were somehow corrupted, or else i'd expect to see more seg faults before today. any ideas? thanks! will --- clucene/src/CLucene/index/FieldsReader.cpp 2007-02-15 00:17:52.000000000 +0000 +++ clucene/src/CLucene/index/FieldsReader_patch.cpp 2007-02-15 00:19:07.000000000 +0000 @@ -83,6 +83,9 @@ for (int32_t i = 0; i < numFields; ++i) { fieldNumber = fieldsStream->readVInt(); fi = fieldInfos->fieldInfo(fieldNumber); + if (fi == NULL) { + continue; // should this ever happen? + } bits = fieldsStream->readByte(); fvalue = fieldsStream->readString(true); |