From 06023e549efa649979b501cd448e1098b715860f Mon Sep 17 00:00:00 2001 From: Luke Dashjr Date: Wed, 2 May 2012 10:34:31 -0400 Subject: [PATCH] Bugfix: Return failure, rather than quit, if BFwrite fails --- driver-bitforce.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/driver-bitforce.c b/driver-bitforce.c index 4306235f..a59338cd 100644 --- a/driver-bitforce.c +++ b/driver-bitforce.c @@ -79,14 +79,18 @@ static void BFgets(char *buf, size_t bufLen, int fd) buf[0] = '\0'; } -static void BFwrite(int fd, const void *buf, ssize_t bufLen) +static ssize_t BFwrite2(int fd, const void *buf, ssize_t bufLen) { - ssize_t ret = write(fd, buf, bufLen); - - if (unlikely(ret != bufLen)) - quit(1, "BFwrite failed"); + return write(fd, buf, bufLen); } +#define BFwrite(fd, buf, bufLen) do { \ + if ((bufLen) != BFwrite2(fd, buf, bufLen)) { \ + applog(LOG_ERR, "Error writing to BitForce (" #buf ")"); \ + return 0; \ + } \ +} while(0) + #define BFclose(fd) close(fd) static bool bitforce_detect_one(const char *devpath)