File tree Expand file tree Collapse file tree
texk/web2c/mfluadir/otfcc/dep/extern Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -193,7 +193,7 @@ void sdsclear(sds s) {
193193sds sdsMakeRoomFor (sds s , size_t addlen ) {
194194 void * sh , * newsh ;
195195 size_t avail = sdsavail (s );
196- size_t len , newlen ;
196+ size_t len , newlen , reqlen ;
197197 char type , oldtype = s [-1 ] & SDS_TYPE_MASK ;
198198 int hdrlen ;
199199
@@ -202,7 +202,7 @@ sds sdsMakeRoomFor(sds s, size_t addlen) {
202202
203203 len = sdslen (s );
204204 sh = (char * )s - sdsHdrSize (oldtype );
205- newlen = (len + addlen );
205+ reqlen = newlen = (len + addlen );
206206 if (newlen < SDS_MAX_PREALLOC )
207207 newlen *= 2 ;
208208 else
@@ -216,6 +216,7 @@ sds sdsMakeRoomFor(sds s, size_t addlen) {
216216 if (type == SDS_TYPE_5 ) type = SDS_TYPE_8 ;
217217
218218 hdrlen = sdsHdrSize (type );
219+ assert (hdrlen + newlen + 1 > reqlen ); /* Catch size_t overflow */
219220 if (oldtype == type ) {
220221 newsh = s_realloc (sh , hdrlen + newlen + 1 );
221222 if (newsh == NULL ) return NULL ;
You can’t perform that action at this time.
0 commit comments