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;
}