blobs_offset = name_utf16_len;
blobs_offset = ((blobs_offset + 3) & ~3);
- SIVAL(fixed, 48, blobs_offset + SMB2_HDR_BODY + 56);
- SIVAL(fixed, 52, blob.length);
+ if (blob.length > 0) {
+ SIVAL(fixed, 48, blobs_offset + SMB2_HDR_BODY + 56);
+ SIVAL(fixed, 52, blob.length);
+ }
dyn_len = MAX(1, blobs_offset + blob.length);
dyn = talloc_zero_array(state, uint8_t, dyn_len);
}
if (blob.data != NULL) {
- memcpy(dyn + blobs_offset - (SMB2_HDR_BODY + 56),
+ memcpy(dyn + blobs_offset,
blob.data, blob.length);
data_blob_free(&blob);
}