diff options
author | George Hazan <george.hazan@gmail.com> | 2024-12-15 15:50:25 +0300 |
---|---|---|
committer | George Hazan <george.hazan@gmail.com> | 2024-12-15 15:50:25 +0300 |
commit | 4bbe001b15dec9cacd882ee55fe54f85c56a147f (patch) | |
tree | f181de7f9180492ac67a4a724697aad48eb6edb7 /protocols/Steam/src/protobuf-c/protobuf-c-text.cpp | |
parent | d2c72c9bf3492fd40960c2f0935c9c675795d28a (diff) |
Steam: service calls switched to static handlers
Diffstat (limited to 'protocols/Steam/src/protobuf-c/protobuf-c-text.cpp')
-rw-r--r-- | protocols/Steam/src/protobuf-c/protobuf-c-text.cpp | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/protocols/Steam/src/protobuf-c/protobuf-c-text.cpp b/protocols/Steam/src/protobuf-c/protobuf-c-text.cpp index c0438b6ac8..68e54f143e 100644 --- a/protocols/Steam/src/protobuf-c/protobuf-c-text.cpp +++ b/protocols/Steam/src/protobuf-c/protobuf-c-text.cpp @@ -330,18 +330,22 @@ static void protobuf_c_text_to_string_internal( if (f[i].label == PROTOBUF_C_LABEL_REPEATED) { for (j = 0; j < quantifier_offset; j++) { auto *member = STRUCT_MEMBER(ProtobufCBinaryData *, m, f[i].offset); - char *p = (char *)malloc(member->len * 2 + 1); - bin2hex(member->data, member->len, p); - str.AppendFormat("%*s%s: \"%s\"\n", level, "", f[i].name, p); - free(p); + if (member->len && member->data) { + char *p = (char *)malloc(member->len * 2 + 1); + bin2hex(member->data, member->len, p); + str.AppendFormat("%*s%s: \"%s\"\n", level, "", f[i].name, p); + free(p); + } } } else { auto member = STRUCT_MEMBER(ProtobufCBinaryData, m, f[i].offset); - char *p = (char *)malloc(member.len * 2 + 1); - bin2hex(member.data, member.len, p); - str.AppendFormat("%*s%s: \"%s\"\n", level, "", f[i].name, p); - free(p); + if (member.len && member.data) { + char *p = (char *)malloc(member.len * 2 + 1); + bin2hex(member.data, member.len, p); + str.AppendFormat("%*s%s: \"%s\"\n", level, "", f[i].name, p); + free(p); + } } break; |