From: Richard Jones Date: Mon, 30 Nov 2009 13:55:04 +0000 (+0000) Subject: daemon error handling: Clear errno before calling stub functions. X-Git-Tag: 1.0.80~13 X-Git-Url: http://git.annexia.org/?p=libguestfs.git;a=commitdiff_plain;h=50c239c045675c7480d88bf10857f3e85c3385d3 daemon error handling: Clear errno before calling stub functions. This just ensures that we accurately report errors, even if our error path code doesn't set errno. We won't end up with a bogus errno left over from a previous call. --- diff --git a/daemon/proto.c b/daemon/proto.c index 2231037..e3ff9e9 100644 --- a/daemon/proto.c +++ b/daemon/proto.c @@ -29,6 +29,10 @@ #include #include +#ifdef HAVE_WINDOWS_H +#include +#endif + #include "c-ctype.h" #include "ignore-value.h" @@ -137,9 +141,20 @@ main_loop (int _sock) goto cont; } - /* Now start to process this message. */ proc_nr = hdr.proc; serial = hdr.serial; + + /* Clear errors before we call the stub functions. This is just + * to ensure that we can accurately report errors in cases where + * error handling paths don't set errno correctly. + */ + errno = 0; +#ifdef WIN32 + SetLastError (0); + WSASetLastError (0); +#endif + + /* Now start to process this message. */ dispatch_incoming_message (&xdr); /* Note that dispatch_incoming_message will also send a reply. */