X-Git-Url: https://git.tokkee.org/?p=sysdb.git;a=blobdiff_plain;f=src%2Fclient%2Fsock.c;h=0d734f3a9462ba74bb7405beb94c9fdeecb67d8a;hp=bed6fc0ff0b6d20aff605f4f0a1c4b466435b3e8;hb=d25f3c59b5cf5387acd4e6d1467ce9efffa40f9a;hpb=4b1c3e70c727641934d697339cad02cda0a3c565 diff --git a/src/client/sock.c b/src/client/sock.c index bed6fc0..0d734f3 100644 --- a/src/client/sock.c +++ b/src/client/sock.c @@ -306,12 +306,13 @@ sdb_client_recv(sdb_client_t *client, if (rstatus == UINT32_MAX) { const char *str = sdb_strbuf_string(buf) + data_offset; size_t len = sdb_strbuf_len(buf) - data_offset; + ssize_t n; /* retrieve status and data len */ assert(len >= 2 * sizeof(uint32_t)); - rstatus = sdb_proto_unmarshal_int32(str, len); - rlen = sdb_proto_unmarshal_int32(str + sizeof(rstatus), - len - sizeof(rstatus)); + n = sdb_proto_unmarshal_int32(str, len, &rstatus); + str += n; len -= (size_t)n; + sdb_proto_unmarshal_int32(str, len, &rlen); if (! rlen) break;