ubik: Save errno before logging 63/13263/2
authorAndrew Deason <adeason@sinenomine.net>
Fri, 27 Jul 2018 18:36:15 +0000 (13:36 -0500)
committerBenjamin Kaduk <kaduk@mit.edu>
Fri, 27 Jul 2018 19:39:59 +0000 (15:39 -0400)
The value of errno can change after a syscall, and ViceLog may issue
syscalls (such as write()). So, make sure we save errno here before
calling ViceLog().

Issue spotted by kaduk@mit.edu.

Change-Id: I0f3308d64cd779bd97c97834ec2b270f5edd7ba6
Reviewed-on: https://gerrit.openafs.org/13263
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
Tested-by: BuildBot <buildbot@rampaginggeek.com>

src/ubik/remote.c

index 069a8c3..b131da5 100644 (file)
@@ -534,8 +534,8 @@ SDISK_SendFile(struct rx_call *rxcall, afs_int32 file,
             (file<0)?-file:file);
     fd = open(pbuffer, O_CREAT | O_RDWR | O_TRUNC, 0600);
     if (fd < 0) {
-       ViceLog(0, ("Open error=%d\n", errno));
        code = errno;
+       ViceLog(0, ("Open error=%d\n", code));
        goto failed_locked;
     }
     code = lseek(fd, HDRSIZE, 0);