From d50ce244c88d53668b355cdd5fdd169158b20c42 Mon Sep 17 00:00:00 2001 From: fumiama Date: Mon, 7 Jun 2021 19:27:17 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=BD=93=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E4=B8=BA=E5=85=A80=E6=97=B6=E5=87=BA=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- protobuf.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/protobuf.c b/protobuf.c index f95122e..50b1e68 100644 --- a/protobuf.c +++ b/protobuf.c @@ -46,7 +46,7 @@ SIMPLE_PB* get_pb(FILE* fp) { while(p < end) { uint32_t offset = read_num(fp); uint32_t data_len = read_num(fp); - fread(p, data_len, 1, fp); + if(data_len > 0) fread(p, data_len, 1, fp); p += offset; } spb->real_len = ftell(fp) - init_pos; @@ -66,9 +66,9 @@ int set_pb(FILE* fp, uint32_t* items_len, uint32_t struct_len, void* target) { write_num(fp, data_len); char* this = p + offset; offset += data_len; - if(data_len > 1) while(!this[data_len - 1]) data_len--; + if(data_len > 1) while(data_len > 0 && !this[data_len - 1]) data_len--; write_num(fp, data_len); - fwrite(this, data_len, 1, fp); + if(data_len > 0) fwrite(this, data_len, 1, fp); } return i; }