aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authornyamatongwe <unknown>2009-04-25 00:01:51 +0000
committernyamatongwe <unknown>2009-04-25 00:01:51 +0000
commite29fbc46b5d542ab3975c512c478fdc2023f348f (patch)
treef5192bd470067a68d1d8690039e7792d9f0af116 /src
parent17910c0044815b89415a78074754c91543f1a22d (diff)
downloadscintilla-mirror-e29fbc46b5d542ab3975c512c478fdc2023f348f.tar.gz
Avoid out of bounds write when asked to add marker to line beyond end of
document.
Diffstat (limited to 'src')
-rw-r--r--src/Document.cxx14
1 files changed, 9 insertions, 5 deletions
diff --git a/src/Document.cxx b/src/Document.cxx
index f7e9dfdcc..ac37215b2 100644
--- a/src/Document.cxx
+++ b/src/Document.cxx
@@ -138,11 +138,15 @@ int Document::GetMark(int line) {
}
int Document::AddMark(int line, int markerNum) {
- int prev = static_cast<LineMarkers*>(perLineData[ldMarkers])->
- AddMark(line, markerNum, LinesTotal());
- DocModification mh(SC_MOD_CHANGEMARKER, LineStart(line), 0, 0, 0, line);
- NotifyModified(mh);
- return prev;
+ if (line <= LinesTotal()) {
+ int prev = static_cast<LineMarkers*>(perLineData[ldMarkers])->
+ AddMark(line, markerNum, LinesTotal());
+ DocModification mh(SC_MOD_CHANGEMARKER, LineStart(line), 0, 0, 0, line);
+ NotifyModified(mh);
+ return prev;
+ } else {
+ return 0;
+ }
}
void Document::AddMarkSet(int line, int valueSet) {