# HG changeset patch # User smatz # Date 1210703955 0 # Node ID 50980569d866a0e6656ce4cdbdf5ec52a2e1c6a9 # Parent 85f17fe0f5e55a15a81545e2d4b0fa9d477d8ea5 (svn r13072) -Fix (r12995): possible out-of-bounds access diff -r 85f17fe0f5e5 -r 50980569d866 src/engine.cpp --- a/src/engine.cpp Tue May 13 14:59:50 2008 +0000 +++ b/src/engine.cpp Tue May 13 18:39:15 2008 +0000 @@ -120,7 +120,11 @@ */ void EngList_Sort(EngineList *el, EngList_SortTypeFunction compare) { - qsort(&((*el)[0]), el->size(), sizeof(EngineID), compare); + size_t size = el->size(); + /* out-of-bounds access at the next line for size == 0 (even with operator[] at some systems) + * generally, do not sort if there are less than 2 items */ + if (size < 2) return; + qsort(&(el->at(0)), size, sizeof(EngineID), compare); } /** Sort selected range of items (on indices @ )