size_t out_size) {
char *in = payload;
- if ((payload_size < 1) || (in[payload_size - 1] != 0) ||
+ if ((payload_size < 1) || (in[payload_size - 1] != '\0') ||
(payload_size > out_size))
return EINVAL;
- strncpy(out, in, out_size);
+ strncpy(out, in, out_size - 1);
+ out[out_size - 1] = '\0';
return 0;
}
static int parse_values(void *payload, size_t payload_size,
lcc_value_list_t *state) {
buffer_t *b = &(buffer_t){
- .data = payload, .len = payload_size,
+ .data = payload,
+ .len = payload_size,
};
uint16_t n;
}
buffer_t *b = &(buffer_t){
- .data = signature, .len = signature_len,
+ .data = signature,
+ .len = signature_len,
};
uint8_t hash[32];
}
buffer_t *b = &(buffer_t){
- .data = data, .len = data_size,
+ .data = data,
+ .len = data_size,
};
uint16_t username_len;
static int network_parse(void *data, size_t data_size, lcc_security_level_t sl,
lcc_network_parse_options_t const *opts) {
buffer_t *b = &(buffer_t){
- .data = data, .len = data_size,
+ .data = data,
+ .len = data_size,
};
lcc_value_list_t state = {0};