Skip to content

Commit 264f7dd

Browse files
authored
Merge pull request #153 from marcgurevitx/fix-rawdata-realloc-ub
Free data on RawData.resize(0)
2 parents 1ce1036 + bac7888 commit 264f7dd

File tree

1 file changed

+5
-4
lines changed

1 file changed

+5
-4
lines changed

MiniScript-cpp/src/ShellIntrinsics.cpp

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -102,15 +102,16 @@ class RawDataHandleStorage : public RefCountedStorage {
102102
}
103103
virtual ~RawDataHandleStorage() { free(data); }
104104
void resize(size_t newSize) {
105-
if (data) {
105+
if (newSize == 0) {
106+
free(data);
107+
data = nullptr;
108+
dataSize = 0;
109+
} else {
106110
void *newData = realloc(data, newSize);
107111
if (newData) {
108112
data = newData;
109113
dataSize = newSize;
110114
}
111-
} else {
112-
data = malloc(newSize);
113-
if (data) dataSize = newSize;
114115
}
115116
}
116117

0 commit comments

Comments
 (0)