If we hit the case that the blob length is 32. The code goes to the end
of the function and generates a GUID with garbage.
So try to convert the blob to the GUID and return.
{
size_t rlen = strhex_to_str((char *)blob16.data, blob16.length,
(const char *)s->data, s->length);
- if (rlen == blob16.length) {
- /* goto the ndr_pull_struct_blob() path */
- status = NT_STATUS_OK;
- s = &blob16;
+ if (rlen != blob16.length) {
+ return NT_STATUS_INVALID_PARAMETER;
}
- break;
+
+ s = &blob16;
+ return GUID_from_ndr_blob(s, guid);
}
case 16:
return GUID_from_ndr_blob(s, guid);