aboutsummaryrefslogtreecommitdiffstats
path: root/src/gwin
diff options
context:
space:
mode:
authorJoel Bodenmann <joel@seriouslyembedded.com>2015-08-14 18:55:36 +0200
committerJoel Bodenmann <joel@seriouslyembedded.com>2015-08-14 18:55:36 +0200
commit668257c87262f044ff3858224ba0646f690cd706 (patch)
tree9d15b5868b219935918e99e25d1c15d238375df4 /src/gwin
parent03bc3f25a7425af6255d023fc837cc8be1453e8d (diff)
downloaduGFX-668257c87262f044ff3858224ba0646f690cd706.tar.gz
uGFX-668257c87262f044ff3858224ba0646f690cd706.tar.bz2
uGFX-668257c87262f044ff3858224ba0646f690cd706.zip
Prevent buffer overflow
Diffstat (limited to 'src/gwin')
-rw-r--r--src/gwin/gwin_textedit.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/gwin/gwin_textedit.c b/src/gwin/gwin_textedit.c
index 4d1f93a6..f90666ff 100644
--- a/src/gwin/gwin_textedit.c
+++ b/src/gwin/gwin_textedit.c
@@ -104,6 +104,11 @@ static void _shiftTextRight(char* buffer, size_t bufferSize, size_t index, char
// Add a new character
else {
+ // Prevent buffer overflow
+ if (gw2obj->cursorPos >= gw2obj->bufferSize) {
+ return;
+ }
+
// Shift everything right from the cursor by one character. This includes the '\0'. Then inser the new character.
_shiftTextRight(gw2obj->textBuffer, gw2obj->bufferSize, gw2obj->cursorPos++, pke->c[0]);
}