outs is not a zero-terminated string but has its length given by
outslen, so use that (with a maximum of the size of msg)
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
if (ret < 0) {
char msg[4096];
- snprintf(msg, sizeof(msg), "mon_command failed - %s\n", outs);
+ if (outslen > sizeof(msg)) {
+ outslen = sizeof(msg);
+ }
+ snprintf(msg, sizeof(msg), "mon_command failed - %.*s\n", (int)outslen, outs);
rados_buffer_free(outs);
+ if (outbuf != NULL) {
+ rados_buffer_free(outbuf);
+ }
die(msg);
}