From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:48861) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SohR5-0004a6-Q0 for qemu-devel@nongnu.org; Tue, 10 Jul 2012 16:53:36 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1SohR3-0000sj-Mk for qemu-devel@nongnu.org; Tue, 10 Jul 2012 16:53:31 -0400 Received: from mail-pb0-f45.google.com ([209.85.160.45]:56094) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SohR3-0000kA-Fh for qemu-devel@nongnu.org; Tue, 10 Jul 2012 16:53:29 -0400 Received: by pbbro12 with SMTP id ro12so855189pbb.4 for ; Tue, 10 Jul 2012 13:53:26 -0700 (PDT) Message-ID: <4FFC9643.7020509@codemonkey.ws> Date: Tue, 10 Jul 2012 15:53:23 -0500 From: Anthony Liguori MIME-Version: 1.0 References: In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH 4/5] Avoid unportable %m format List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: blauwirbel@gmail.com Cc: blueswirl@gmail.com, qemu-devel@nongnu.org On 07/08/2012 06:51 AM, blauwirbel@gmail.com wrote: > From: Blue Swirl > > Replace %m format with explicit call to standard strerror(). > > Signed-off-by: Blue Swirl I would expect '%m' to be thread safe whereas strerror() isn't. I don't think this change is actually good. You'd need to do something more clever with strerror_r() to be equivalent. Regards, Anthony Liguori > --- > kvm-all.c | 3 ++- > main-loop.c | 2 +- > net/tap-linux.c | 8 +++++--- > qemu-nbd.c | 3 +-- > 4 files changed, 9 insertions(+), 7 deletions(-) > > diff --git a/kvm-all.c b/kvm-all.c > index f8e4328..d6f4819 100644 > --- a/kvm-all.c > +++ b/kvm-all.c > @@ -1219,7 +1219,8 @@ int kvm_init(void) > s->vmfd = -1; > s->fd = qemu_open("/dev/kvm", O_RDWR); > if (s->fd == -1) { > - fprintf(stderr, "Could not access KVM kernel module: %m\n"); > + fprintf(stderr, "Could not access KVM kernel module: %s\n", > + strerror(errno)); > ret = -errno; > goto err; > } > diff --git a/main-loop.c b/main-loop.c > index eb3b6e6..472c55e 100644 > --- a/main-loop.c > +++ b/main-loop.c > @@ -116,7 +116,7 @@ static void sigfd_handler(void *opaque) > } > > if (len != sizeof(info)) { > - printf("read from sigfd returned %zd: %m\n", len); > + printf("read from sigfd returned %zd: %s\n", len, strerror(errno)); > return; > } > > diff --git a/net/tap-linux.c b/net/tap-linux.c > index 41d581b..94e5b1e 100644 > --- a/net/tap-linux.c > +++ b/net/tap-linux.c > @@ -42,7 +42,7 @@ int tap_open(char *ifname, int ifname_size, int *vnet_hdr, int vnet_hdr_required > > TFR(fd = open(PATH_NET_TUN, O_RDWR)); > if (fd< 0) { > - error_report("could not open %s: %m", PATH_NET_TUN); > + error_report("could not open %s: %s", PATH_NET_TUN, strerror(errno)); > return -1; > } > memset(&ifr, 0, sizeof(ifr)); > @@ -74,9 +74,11 @@ int tap_open(char *ifname, int ifname_size, int *vnet_hdr, int vnet_hdr_required > ret = ioctl(fd, TUNSETIFF, (void *)&ifr); > if (ret != 0) { > if (ifname[0] != '\0') { > - error_report("could not configure %s (%s): %m", PATH_NET_TUN, ifr.ifr_name); > + error_report("could not configure %s (%s): %s", PATH_NET_TUN, > + ifr.ifr_name, strerror(errno)); > } else { > - error_report("could not configure %s: %m", PATH_NET_TUN); > + error_report("could not configure %s: %s", PATH_NET_TUN, > + strerror(errno)); > } > close(fd); > return -1; > diff --git a/qemu-nbd.c b/qemu-nbd.c > index 5a0300e..099b5ed 100644 > --- a/qemu-nbd.c > +++ b/qemu-nbd.c > @@ -213,8 +213,7 @@ static void *nbd_client_thread(void *arg) > > fd = open(device, O_RDWR); > if (fd< 0) { > - /* Linux-only, we can use %m in printf. */ > - fprintf(stderr, "Failed to open %s: %m", device); > + fprintf(stderr, "Failed to open %s: %s", device, strerror(errno)); > goto out; > } >