From 923dbe525b6ff528f782fcd06f23075e65ede859 Mon Sep 17 00:00:00 2001 From: Frank Lahm Date: Tue, 16 Nov 2010 13:37:30 +0100 Subject: [PATCH] Return -1 from readt on read or select error and 0 bytes read --- libatalk/cnid/dbd/cnid_dbd.c | 2 +- libatalk/util/socket.c | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/libatalk/cnid/dbd/cnid_dbd.c b/libatalk/cnid/dbd/cnid_dbd.c index 7098a49b..6cc5edfc 100644 --- a/libatalk/cnid/dbd/cnid_dbd.c +++ b/libatalk/cnid/dbd/cnid_dbd.c @@ -332,7 +332,7 @@ static int dbd_rpc(CNID_private *db, struct cnid_dbd_rqst *rqst, struct cnid_dbd if (ret != sizeof(struct cnid_dbd_rply)) { LOG(log_error, logtype_cnid, "dbd_rpc: Error reading header from fd (db_dir %s): %s", - db->db_dir, ret == -1?strerror(errno):"closed"); + db->db_dir, ret == -1 ? strerror(errno) : "closed"); rply->name = nametmp; return -1; } diff --git a/libatalk/util/socket.c b/libatalk/util/socket.c index 543f3803..96472bae 100644 --- a/libatalk/util/socket.c +++ b/libatalk/util/socket.c @@ -158,6 +158,9 @@ exit: return -1; } + if (len == -1 && stored == 0) + /* last read or select got an error and we haven't got yet anything => return -1*/ + return -1; return stored; } -- 2.39.2