diff --git a/monitor.c b/monitor.c index 9466c63ba70fd85684780937a9069557db3c85b1..9338d13e8300a753c02658d3a2b44bade11d9fce 100644 --- a/monitor.c +++ b/monitor.c @@ -2447,7 +2447,7 @@ static int do_getfd(Monitor *mon, const QDict *qdict, QObject **ret_data) return 0; } -static void do_closefd(Monitor *mon, const QDict *qdict, QObject **ret_data) +static int do_closefd(Monitor *mon, const QDict *qdict, QObject **ret_data) { const char *fdname = qdict_get_str(qdict, "fdname"); mon_fd_t *monfd; @@ -2461,10 +2461,11 @@ static void do_closefd(Monitor *mon, const QDict *qdict, QObject **ret_data) close(monfd->fd); qemu_free(monfd->name); qemu_free(monfd); - return; + return 0; } qemu_error_new(QERR_FD_NOT_FOUND, fdname); + return -1; } static void do_loadvm(Monitor *mon, const QDict *qdict) diff --git a/qemu-monitor.hx b/qemu-monitor.hx index e8e2ee1a28491238df23bdb91d8e4bcabe31214b..6e84f76043f477ee139670233cf8c2eb3fb2987f 100644 --- a/qemu-monitor.hx +++ b/qemu-monitor.hx @@ -1100,7 +1100,7 @@ ETEXI .params = "closefd name", .help = "close a file descriptor previously passed via SCM rights", .user_print = monitor_user_noop, - .mhandler.cmd_new = do_closefd, + .cmd_new_ret = do_closefd, }, STEXI