Skip to content

Commit b675abc

Browse files
mflua: apply Ivana Clairine's patch to "otfcc/dep/extern/sds.c". Closes #80.
git-svn-id: svn://tug.org/texlive/trunk/Build/source@78259 c570f23f-e606-0410-a88d-b1316a301751
1 parent 9eb18a3 commit b675abc

1 file changed

Lines changed: 3 additions & 2 deletions

File tree

  • texk/web2c/mfluadir/otfcc/dep/extern

texk/web2c/mfluadir/otfcc/dep/extern/sds.c

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -193,7 +193,7 @@ void sdsclear(sds s) {
193193
sds 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;

0 commit comments

Comments
 (0)