The filename parameter never to be NULL, because in qemu_chr_parse_pipe it is return value of g_strdup(device), where device will not be NULL.
We should check its length. After this patch, when run command: qemu-system-x86_64 -chardev pipe,id=pipe1,path= It will report error: chardev: pipe: no filename given Signed-off-by: zhanghailiang <zhang.zhanghaili...@huawei.com> --- qemu-char.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/qemu-char.c b/qemu-char.c index bd0709b..42b1d8f 100644 --- a/qemu-char.c +++ b/qemu-char.c @@ -1084,7 +1084,7 @@ static CharDriverState *qemu_chr_open_pipe(ChardevHostdev *opts) char filename_out[CHR_MAX_FILENAME_SIZE]; const char *filename = opts->device; - if (filename == NULL) { + if (filename == NULL || strlen(filename) == 0) { fprintf(stderr, "chardev: pipe: no filename given\n"); return NULL; } -- 1.7.12.4