examples/gcoap: handle request buffer too small

This commit is contained in:
Ken Bannister 2019-01-16 05:38:13 -05:00
parent 6a4c764c95
commit 8a1a2b41fb

View File

@ -243,8 +243,15 @@ int gcoap_cli_cmd(int argc, char **argv)
((argc == apos + 4) && (code_pos != 0))) { ((argc == apos + 4) && (code_pos != 0))) {
gcoap_req_init(&pdu, &buf[0], GCOAP_PDU_BUF_SIZE, code_pos+1, argv[apos+2]); gcoap_req_init(&pdu, &buf[0], GCOAP_PDU_BUF_SIZE, code_pos+1, argv[apos+2]);
if (argc == apos + 4) { if (argc == apos + 4) {
/* must be 'greater than' to account for payload marker byte */
if (pdu.payload_len > strlen(argv[apos+3])) {
memcpy(pdu.payload, argv[apos+3], strlen(argv[apos+3])); memcpy(pdu.payload, argv[apos+3], strlen(argv[apos+3]));
} }
else {
puts("gcoap_cli: msg buffer too small");
return 1;
}
}
coap_hdr_set_type(pdu.hdr, msg_type); coap_hdr_set_type(pdu.hdr, msg_type);
if (argc == apos + 4) { if (argc == apos + 4) {