Changeset: 2ee558965089 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=2ee558965089
Modified Files:
        common/stream/stream.c
Branch: Jan2014
Log Message:

Crash prevention: only subtract value if result doesn't overflow.


diffs (33 lines):

diff --git a/common/stream/stream.c b/common/stream/stream.c
--- a/common/stream/stream.c
+++ b/common/stream/stream.c
@@ -3104,10 +3104,12 @@ bstream_read(bstream *s, size_t size)
                return 0;
 
        if (s->pos > 0) {
-               if (s->pos < s->len)
+               if (s->pos < s->len) {
                        /* move all data and end of string marker */
                        memmove(s->buf, s->buf + s->pos, s->len - s->pos + 1);
-               s->len -= s->pos;
+                       s->len -= s->pos;
+               } else
+                       s->len = 0;
                s->pos = 0;
        }
 
@@ -3152,10 +3154,12 @@ bstream_readline(bstream *s)
                return 0;
 
        if (s->pos > 0 && s->len + size >= s->size) {
-               if (s->pos < s->len)
+               if (s->pos < s->len) {
                        /* move all data and end of string marker */
                        memmove(s->buf, s->buf + s->pos, s->len - s->pos + 1);
-               s->len -= s->pos;
+                       s->len -= s->pos;
+               } else
+                       s->len = 0;
                s->pos = 0;
        }
 
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to