ubik: Save errno before logging 98/13898/5
authorAndrew Deason <adeason@sinenomine.net>
Fri, 27 Jul 2018 18:36:15 +0000 (13:36 -0500)
committerStephan Wiesand <stephan.wiesand@desy.de>
Sun, 9 Feb 2020 22:22:50 +0000 (17:22 -0500)
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.

Reviewed-on: https://gerrit.openafs.org/13263
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
(cherry picked from commit 9ff5f8f7601cc9761cc6a4ef0e8b7c8c2c8dddb5)

Change-Id: I4f41ca758574e0d58659788467372af71a5f75f2
Reviewed-on: https://gerrit.openafs.org/13898
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>

src/ubik/remote.c

index a4fbf84..65dc411 100644 (file)
@@ -508,6 +508,7 @@ SDISK_SendFile(struct rx_call *rxcall, afs_int32 file,
     fd = open(pbuffer, O_CREAT | O_RDWR | O_TRUNC, 0600);
     if (fd < 0) {
        code = errno;
+       ViceLog(0, ("Open error=%d\n", code));
        goto failed_locked;
     }
     code = lseek(fd, HDRSIZE, 0);