diff options
author | Dirk Hohndel <dirk@hohndel.org> | 2019-10-26 17:16:09 -0400 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2019-10-26 19:17:53 -0700 |
commit | 4f9783ff606081baec1926676bd048e99e00e578 (patch) | |
tree | 17fa728a76754e60161ca8386cd9f855a94c3765 /qt-models | |
parent | d3d51b175dd39722e58b7315009a5fff1b000260 (diff) | |
download | subsurface-4f9783ff606081baec1926676bd048e99e00e578.tar.gz |
Cleanup: avoid out of bounds access
This is extremely unlikely to ever happen since we reserve space for a
hundred weight models, but hey, doing this right is quite easy, so let's
fix it.
Found by Coverity. Fixes CID #350117
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'qt-models')
-rw-r--r-- | qt-models/weightmodel.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/qt-models/weightmodel.cpp b/qt-models/weightmodel.cpp index 3295e29ae..715af1571 100644 --- a/qt-models/weightmodel.cpp +++ b/qt-models/weightmodel.cpp @@ -99,13 +99,13 @@ bool WeightModel::setData(const QModelIndex &index, const QVariant &value, int r if (!ws->description || gettextFromC::tr(ws->description) != vString) { // loop over translations to see if one matches int i = -1; - while (ws_info[++i].name && i < MAX_WS_INFO) { + while (i < MAX_WS_INFO && ws_info[++i].name) { if (gettextFromC::tr(ws_info[i].name) == vString) { ws->description = copy_string(ws_info[i].name); break; } } - if (ws_info[i].name == NULL) // didn't find a match + if (i == MAX_WS_INFO || ws_info[i].name == NULL) // didn't find a match ws->description = copy_qstring(vString); changed = true; } |