diff --git a/hw/mips/cps.c b/hw/mips/cps.c index 77c621797a..4ef337d5c4 100644 --- a/hw/mips/cps.c +++ b/hw/mips/cps.c @@ -73,7 +73,7 @@ static void mips_cps_realize(DeviceState *dev, Error **errp) for (i = 0; i < s->num_vp; i++) { cpu = cpu_mips_init(s->cpu_model); if (cpu == NULL) { - error_setg(errp, "%s: CPU initialization failed\n", __func__); + error_setg(errp, "%s: CPU initialization failed", __func__); return; } diff --git a/hw/nvram/fw_cfg.c b/hw/nvram/fw_cfg.c index f10d5ec9c8..6a68e594d5 100644 --- a/hw/nvram/fw_cfg.c +++ b/hw/nvram/fw_cfg.c @@ -744,7 +744,7 @@ static int get_fw_cfg_order(FWCfgState *s, const char *name) } /* Stick unknown stuff at the end. */ - error_report("warning: Unknown firmware file in legacy mode: %s\n", name); + error_report("warning: Unknown firmware file in legacy mode: %s", name); return FW_CFG_ORDER_OVERRIDE_LAST; } diff --git a/hw/ppc/spapr_cpu_core.c b/hw/ppc/spapr_cpu_core.c index 170ed154a6..3ec47b7954 100644 --- a/hw/ppc/spapr_cpu_core.c +++ b/hw/ppc/spapr_cpu_core.c @@ -234,7 +234,7 @@ void spapr_core_pre_plug(HotplugHandler *hotplug_dev, DeviceState *dev, } if (cc->core_id % smp_threads) { - error_setg(&local_err, "invalid core id %d\n", cc->core_id); + error_setg(&local_err, "invalid core id %d", cc->core_id); goto out; } diff --git a/qemu-img.c b/qemu-img.c index 2e40e1fc84..d2865a589e 100644 --- a/qemu-img.c +++ b/qemu-img.c @@ -3490,7 +3490,7 @@ typedef struct BenchData { static void bench_undrained_flush_cb(void *opaque, int ret) { if (ret < 0) { - error_report("Failed flush request: %s\n", strerror(-ret)); + error_report("Failed flush request: %s", strerror(-ret)); exit(EXIT_FAILURE); } } @@ -3501,7 +3501,7 @@ static void bench_cb(void *opaque, int ret) BlockAIOCB *acb; if (ret < 0) { - error_report("Failed request: %s\n", strerror(-ret)); + error_report("Failed request: %s", strerror(-ret)); exit(EXIT_FAILURE); } diff --git a/scripts/coccinelle/err-bad-newline.cocci b/scripts/coccinelle/err-bad-newline.cocci new file mode 100644 index 0000000000..1316cc86a6 --- /dev/null +++ b/scripts/coccinelle/err-bad-newline.cocci @@ -0,0 +1,29 @@ +// Error messages should not contain newlines. This script finds +// messages that do. Fixing them is manual. +@r@ +expression errp, eno, cls, fmt; +position p; +@@ +( +error_report(fmt, ...)@p +| +error_setg(errp, fmt, ...)@p +| +error_setg_errno(errp, eno, fmt, ...)@p +| +error_setg_win32(errp, eno, cls, fmt, ...)@p +| +error_prepend(errp, fmt, ...)@p +| +error_setg_file_open(errp, eno, cls, fmt, ...)@p +| +error_reportf_err(errp, fmt, ...)@p +| +error_set(errp, cls, fmt, ...)@p +) +@script:python@ +fmt << r.fmt; +p << r.p; +@@ +if "\\n" in str(fmt): + print "%s:%s:%s:%s" % (p[0].file, p[0].line, p[0].column, fmt) diff --git a/slirp/slirp.c b/slirp/slirp.c index 7eb183d0e9..47a1652952 100644 --- a/slirp/slirp.c +++ b/slirp/slirp.c @@ -1197,8 +1197,8 @@ static void slirp_socket_save(QEMUFile *f, struct socket *so) qemu_put_be16(f, so->so_fport); break; default: - error_report( - "so_ffamily unknown, unable to save so_faddr and so_fport\n"); + error_report("so_ffamily unknown, unable to save so_faddr and" + " so_fport"); } qemu_put_be16(f, so->so_lfamily); switch (so->so_lfamily) { @@ -1207,8 +1207,8 @@ static void slirp_socket_save(QEMUFile *f, struct socket *so) qemu_put_be16(f, so->so_lport); break; default: - error_report( - "so_ffamily unknown, unable to save so_laddr and so_lport\n"); + error_report("so_ffamily unknown, unable to save so_laddr and" + " so_lport"); } qemu_put_byte(f, so->so_iptos); qemu_put_byte(f, so->so_emu); diff --git a/target-i386/kvm.c b/target-i386/kvm.c index 9697e16fdd..0b2016a77a 100644 --- a/target-i386/kvm.c +++ b/target-i386/kvm.c @@ -3250,7 +3250,7 @@ int kvm_arch_irqchip_create(MachineState *ms, KVMState *s) if (machine_kernel_irqchip_split(ms)) { ret = kvm_vm_enable_cap(s, KVM_CAP_SPLIT_IRQCHIP, 0, 24); if (ret) { - error_report("Could not enable split irqchip mode: %s\n", + error_report("Could not enable split irqchip mode: %s", strerror(-ret)); exit(1); } else {