|
@@ -36,7 +36,7 @@ size_t sysvar_marshall(enum sysvars_enum first, size_t count,
|
|
|
while (count--) {
|
|
|
sysvar_t vv = *vp++ = *v++;
|
|
|
sysvar_type_t type = *t++;
|
|
|
- if (type->datasize) {
|
|
|
+ if (type->datasize && vv.v_ptr) {
|
|
|
size_t dsize = type->datasize(vv);
|
|
|
size_t adj_bytes = (bytes + align_mask) & ~align_mask;
|
|
|
if (adj_bytes + dsize > bufsize)
|