summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Stahl <mstahl@redhat.com>2014-01-14 16:32:20 +0100
committerMichael Stahl <mstahl@redhat.com>2014-01-15 13:17:36 +0000
commit4b965b031e2196b39f20e28ce9d9fd40552753a5 (patch)
tree4329c1f4b6e8c51abd0e8e0f9091009a5b280c91
parent80df333af59124d484f7d87d83ba0acaef003eba (diff)
fdo#73095: fix invalid access in SwFntObj::DrawText()
aStr may be 1 larger than pKernArray. Trivial fix by checking the largest index; not sure if it would be a good idea to allocate pKernArray with the larger size in the first place, but that would be a bigger change... (regression from 02ce734450559c9353ca7f42b2519239220dd265) Change-Id: Ia33feab001c34e85066b7596d8873f41588984e9 (cherry picked from commit 61ec8f086ba314b86c80a02b16072e88774abf6c) Reviewed-on: https://gerrit.libreoffice.org/7428 Reviewed-by: Michael Meeks <michael.meeks@collabora.com> Tested-by: Michael Meeks <michael.meeks@collabora.com>
-rw-r--r--sw/source/core/txtnode/fntcache.cxx5
1 files changed, 4 insertions, 1 deletions
diff --git a/sw/source/core/txtnode/fntcache.cxx b/sw/source/core/txtnode/fntcache.cxx
index 0857604c137d..42ca510a86cb 100644
--- a/sw/source/core/txtnode/fntcache.cxx
+++ b/sw/source/core/txtnode/fntcache.cxx
@@ -1535,8 +1535,11 @@ void SwFntObj::DrawText( SwDrawTextInfo &rInf )
/* fdo#72488 Hack: try to see if the space is zero width
* and don't bother with inserting a bullet in this case.
*/
- if (pKernArray[i + nCopyStart] != pKernArray[ i + nCopyStart + 1])
+ if ((i + nCopyStart + 1 >= rInf.GetLen()) ||
+ pKernArray[i + nCopyStart] != pKernArray[ i + nCopyStart + 1])
+ {
aStr = aStr.replaceAt(i, 1, OUString(CH_BULLET));
+ }
}
}