From: Han-Wen Nienhuys <redacted>
Signed-off-by: Han-Wen Nienhuys <redacted>
---
reftable/record.c | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)
diff --git a/reftable/record.c b/reftable/record.c
index fbaa1fbef56..423e687b220 100644
--- a/reftable/record.c
+++ b/reftable/record.c
@@ -126,7 +126,8 @@ static int encode_string(char *str, struct string_view s)
string_view_consume(&s, n);
if (s.len < l)
return -1;
- memcpy(s.buf, str, l);
+ if (l)
+ memcpy(s.buf, str, l);
string_view_consume(&s, l);
return start.len - s.len;
@@ -153,7 +154,9 @@ int reftable_encode_key(int *restart, struct string_view dest,
if (dest.len < suffix_len)
return -1;
- memcpy(dest.buf, key.buf + prefix_len, suffix_len);
+
+ if (suffix_len)
+ memcpy(dest.buf, key.buf + prefix_len, suffix_len);
string_view_consume(&dest, suffix_len);
return start.len - dest.len;
@@ -569,7 +572,8 @@ static int reftable_obj_record_decode(void *rec, struct strbuf key,
uint64_t last;
int j;
r->hash_prefix = reftable_malloc(key.len);
- memcpy(r->hash_prefix, key.buf, key.len);
+ if (key.len)
+ memcpy(r->hash_prefix, key.buf, key.len);
r->hash_prefix_len = key.len;
if (val_type == 0) {--
gitgitgadget