X-Git-Url: http://git.cascardo.eti.br/?a=blobdiff_plain;f=decfile.c;h=33062d318f37d4fdbf030c630ba168b51f410a76;hb=216425e2c2fee65fcac2d2a1e3d3bb801df89bc9;hp=bfaf1ee97369327fa86ffdca59f622ac53a5f814;hpb=c04945358132efb4e901b259f24ae16779f3e069;p=cascardo%2Frnetclient.git diff --git a/decfile.c b/decfile.c index bfaf1ee..33062d3 100644 --- a/decfile.c +++ b/decfile.c @@ -83,9 +83,9 @@ static int decfile_parse_header(struct rnet_decfile *decfile) if (!buffer) return -EINVAL; switch (strlen(buffer)) { - case 765: + case RNET_HEADER_SIZE_2013: return parse_header_2013(decfile->header, buffer); - case 793: + case RNET_HEADER_SIZE_2014: return parse_header_2014(decfile->header, buffer); default: return -EINVAL; @@ -430,13 +430,15 @@ static int append_stripped_reg_ctrl(struct rnet_message **message, char *line) { size_t len; struct rnet_message *msg = *message; + int growth; if (!decfile_reg_is_dec(line)) return 0; len = strlen(line); if (len < 12) return -EINVAL; - if (msg->alen - msg->len < len) { - if (rnet_message_expand(message, MAX(msg->len, len))) + growth = msg->len + len - 10 - msg->alen; + if (growth > 0) { + if (rnet_message_expand(message, growth)) return -ENOMEM; msg = *message; }