diff options
author | Christian Hergert <chergert@redhat.com> | 2023-04-26 16:42:40 -0700 |
---|---|---|
committer | Christian Hergert <chergert@redhat.com> | 2023-04-26 16:42:40 -0700 |
commit | 6c1e9f06f892407f667da6bd0c13ab6f3df92024 (patch) | |
tree | bb08b7d0f7b29cafaf90eb2bdc9888872ae211c3 | |
parent | 50e52351fa27c095bc756148fd02512025e699ff (diff) | |
download | gtksourceview-6c1e9f06f892407f667da6bd0c13ab6f3df92024.tar.gz |
bufferoutputstream: be defensive about dereferencing nul byte
If we don't own the buffer, then we don't have a guarantee that the buffer
is one byte bigger than any count/length we've received. Mke sure to only
dereference that byte when we do.
Related #309
-rw-r--r-- | gtksourceview/gtksourcebufferoutputstream.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/gtksourceview/gtksourcebufferoutputstream.c b/gtksourceview/gtksourcebufferoutputstream.c index 2816cb6d..566e96b9 100644 --- a/gtksourceview/gtksourcebufferoutputstream.c +++ b/gtksourceview/gtksourcebufferoutputstream.c @@ -705,7 +705,8 @@ validate_and_insert (GtkSourceBufferOutputStream *stream, apply_error_tag (stream); - if ((nvalid != len || !owned) && buffer[nvalid] != '\0') + if (!owned || + (nvalid != len && buffer[nvalid] != '\0')) { /* make sure the buffer is always properly null * terminated. This is needed, at least for now, |