>From af2847f7da0810f09912e9b77caab9c834ef7fa2 Mon Sep 17 00:00:00 2001 From: Richard Jones Date: Fri, 27 Nov 2009 13:50:28 +0000 Subject: [PATCH 3/9] daemon error handling: readdir code Where readdir sets errno = 0 to ensure correct error handling, we replace this with a call to clear_error (). --- daemon/devsparts.c | 8 ++++---- daemon/realpath.c | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/daemon/devsparts.c b/daemon/devsparts.c index 60e7aa8..6b20503 100644 --- a/daemon/devsparts.c +++ b/daemon/devsparts.c @@ -49,7 +49,7 @@ foreach_block_device (block_dev_func_t func) } while(1) { - errno = 0; + clear_error (); struct dirent *d = readdir(dir); if(NULL == d) break; @@ -80,7 +80,7 @@ foreach_block_device (block_dev_func_t func) } /* Check readdir didn't fail */ - if(0 != errno) { + if (0 != get_error ()) { reply_with_perror ("readdir: /sys/block"); free_stringslen(r, size); return NULL; @@ -150,7 +150,7 @@ add_partitions(const char *device, /* Look in /sys/block// for entries starting with * e.g. /sys/block/sda/sda1 */ - errno = 0; + clear_error (); struct dirent *d; while ((d = readdir (dir)) != NULL) { if (STREQLEN (d->d_name, device, strlen (device))) { @@ -165,7 +165,7 @@ add_partitions(const char *device, } /* Check if readdir failed */ - if(0 != errno) { + if (0 != get_error ()) { reply_with_perror ("readdir: %s", devdir); free_stringslen(*r, *size); return -1; diff --git a/daemon/realpath.c b/daemon/realpath.c index f49e0c5..1a6bc5f 100644 --- a/daemon/realpath.c +++ b/daemon/realpath.c @@ -129,13 +129,13 @@ do_case_sensitive_path (const char *path) struct dirent *d = NULL; - errno = 0; + clear_error (); while ((d = readdir (dir)) != NULL) { if (STRCASEEQ (d->d_name, name)) break; } - if (d == NULL && errno != 0) { + if (d == NULL && get_error () != 0) { reply_with_perror ("readdir"); goto error; } -- 1.6.5.2