Skip to content

Commit 307d247

Browse files
committed
Robustify string/binary setters against NULLs
Signed-off-by: Pierre R. Mai <[email protected]>
1 parent 59b6229 commit 307d247

File tree

2 files changed

+8
-8
lines changed

2 files changed

+8
-8
lines changed

SimpleArrayTest/SimpleArrayTest.c

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -140,12 +140,12 @@ void error_log(SimpleArrayTest component, const char* format, ...) {
140140
} while(0)
141141

142142
#define CopyInStr(a,i,b) do { \
143-
b[0][0] = strdup(a[i++]); \
144-
b[0][1] = strdup(a[i++]); \
145-
b[0][2] = strdup(a[i++]); \
146-
b[1][0] = strdup(a[i++]); \
147-
b[1][1] = strdup(a[i++]); \
148-
b[1][2] = strdup(a[i++]); \
143+
b[0][0] = safe_strdup(a[i++],strdup("")); \
144+
b[0][1] = safe_strdup(a[i++],strdup("")); \
145+
b[0][2] = safe_strdup(a[i++],strdup("")); \
146+
b[1][0] = safe_strdup(a[i++],strdup("")); \
147+
b[1][1] = safe_strdup(a[i++],strdup("")); \
148+
b[1][2] = safe_strdup(a[i++],strdup("")); \
149149
} while(0)
150150

151151
#define BinDup(a,b,c,d) do { \

SimpleVariableTest/SimpleVariableTest.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1135,7 +1135,7 @@ FMI3_Export fmi3Status fmi3SetString(fmi3Instance instance, const fmi3ValueRefer
11351135
for (i = 0; i<nValueReferences; i++) {
11361136
checked_vr_idx(idx,i,STRING);
11371137
free(myc->string_vars[idx]);
1138-
myc->string_vars[idx] = strdup(values[i]);
1138+
myc->string_vars[idx] = safe_strdup(values[i],strdup(""));
11391139
tuned |= (idx == FMI_STRING_STRINGPARAMETER_IDX);
11401140
}
11411141
if (myc->init_mode || tuned)
@@ -1154,7 +1154,7 @@ FMI3_Export fmi3Status fmi3SetBinary(fmi3Instance instance, const fmi3ValueRefer
11541154
checked_vr_idx(idx,i,BINARY);
11551155
free(myc->binary_vars[idx]);
11561156
myc->binary_sizes[idx] = valueSizes[i];
1157-
if (valueSizes[i]) {
1157+
if (valueSizes[i] && values[i] != NULL) {
11581158
myc->binary_vars[idx] = malloc(valueSizes[i]);
11591159
memcpy(myc->binary_vars[idx],values[i],valueSizes[i]);
11601160
} else

0 commit comments

Comments
 (0)