From 59fa335e0eb438d5517370b20ac4c41c4f49645d Mon Sep 17 00:00:00 2001 From: Marcel Holtmann Date: Sun, 3 Jul 2005 15:22:32 +0000 Subject: [PATCH] hcidump: Fix return value handling of recvmsg() --- tools/hcidump.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/tools/hcidump.c b/tools/hcidump.c index 8e1674073..f19466dff 100644 --- a/tools/hcidump.c +++ b/tools/hcidump.c @@ -166,7 +166,7 @@ static void process_frames(int dev, int sock, int fd, unsigned long flags) struct btsnoop_pkt *dp; struct frame frm; char *buf, *ctrl; - int hdr_size = HCIDUMP_HDR_SIZE; + int len, hdr_size = HCIDUMP_HDR_SIZE; if (snap_len < SNAP_LEN) snap_len = SNAP_LEN; @@ -204,13 +204,14 @@ static void process_frames(int dev, int sock, int fd, unsigned long flags) msg.msg_control = ctrl; msg.msg_controllen = 100; - frm.data_len = recvmsg(sock, &msg, 0); - if (frm.data_len < 0) { + len = recvmsg(sock, &msg, 0); + if (len < 0) { perror("Receive failed"); exit(1); } /* Process control message */ + frm.data_len = len; frm.in = 0; cmsg = CMSG_FIRSTHDR(&msg); while (cmsg) { -- 2.47.3