[Nagios-devel] [PATCH] Fix "permission denied" on rename() under

Support forum for Nagios Core, Nagios Plugins, NCPA, NRPE, NSCA, NDOUtils and more. Engage with the community of users including those using the open source solutions.
Locked
Guest

[Nagios-devel] [PATCH] Fix "permission denied" on rename() under

Post by Guest »

This is a multi-part message in MIME format.

------=_NextPart_000_004A_01C84964.3896E6F0
Content-Type: multipart/mixed;
boundary="----=_NextPart_001_004B_01C84964.3896E6F0"


------=_NextPart_001_004B_01C84964.3896E6F0
Content-Type: text/plain;
charset="us-ascii"
Content-Transfer-Encoding: 7bit

Hello,

Nagios 3.0RC1 doesn't work on Cygwin. rename() with a new filename, which is
already held open, results in a "Permission Denied". This situation appears
with the current code while reaping check results.

Attached patch simply closes the new file just opened with mkstemp() - before
renaming instead of afterwards. Securitywise this is a bad solution, because
it opens a race condition, but at least Nagios works.

Please incorporate the bugfix included in the attached patch in a secure form,
so that Nagios will be usable under Cygwin (if other Cygwin issues are
resolved as well).

Best regards,
Michael Bunk

------=_NextPart_001_004B_01C84964.3896E6F0
Content-Type: application/octet-stream;
name="nagios-3.0rc1-fix-permission-denied-on-renaming-file.patch"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: attachment;
filename="nagios-3.0rc1-fix-permission-denied-on-renaming-file.patch"

diff -ru nagios-3.0rc1-orig/base/utils.c nagios-3.0rc1/base/utils.c=0A=
--- nagios-3.0rc1-orig/base/utils.c 2007-12-13 18:14:28.000000000 +0100=0A=
+++ nagios-3.0rc1/base/utils.c 2007-12-28 14:16:45.693812800 +0100=0A=
@@ -2183,11 +2183,19 @@=0A=
=0A=
log_debug_info(DEBUGL_CHECKS,2,"Moving temp check result file '%s' to =
queue file '%s'...\n",checkresult_file,output_file);=0A=
=0A=
+#ifdef __CYGWIN__=0A=
+ /* Cygwin cannot rename open files - gives Permission Denied */=0A=
+ /* close the file */=0A=
+ close(output_file_fd);=0A=
+#endif=0A=
+=0A=
/* move the original file */=0A=
result=3Dmy_rename(checkresult_file,output_file);=0A=
=0A=
+#ifndef __CYGWIN__=0A=
/* close the file */=0A=
close(output_file_fd);=0A=
+#endif=0A=
=0A=
/* create an ok-to-go indicator file */=0A=
asprintf(&temp_buffer,"%s.ok",output_file);=0A=

------=_NextPart_001_004B_01C84964.3896E6F0--

------=_NextPart_000_004A_01C84964.3896E6F0
Content-Type: application/x-pkcs7-signature;
name="smime.p7s"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename="smime.p7s"

MIAGCSqGSIb3DQEHAqCAMIACAQExCzAJBgUrDgMCGgUAMIAGCSqGSIb3DQEHAQAAoIIMgzCCBT4w
ggMmoAMCAQICAwRDBDANBgkqhkiG9w0BAQUFADB5MRAwDgYDVQQKEwdSb290IENBMR4wHAYDVQQL
ExVodHRwOi8vd3d3LmNhY2VydC5vcmcxIjAgBgNVBAMTGUNBIENlcnQgU2lnbmluZyBBdXRob3Jp
dHkxITAfBgkqhkiG9w0BCQEWEnN1cHBvcnRAY2FjZXJ0Lm9yZzAeFw0wNzExMDkxMTU0MDNaFw0w
ODA1MDcxMTU0MDNaMEIxGDAWBgNVBAMTD0NBY2VydCBXb1QgVXNlcjEmMCQGCSqGSIb3DQEJARYX
YnVua0BpYXQudW5pLWxlaXB6aWcuZGUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC4
pB1X61CeypSZMjzKrBtujMyNbZJpcjUaXzPKa3j3Z15c0aj5zJzg20yiCShvNi2PFFGGgUluKkBi
hjbwSk0k4R3MuVkJj4kQzkXjGHpMKWIX9H7k++pRqXkb1jx6/p0Tz8dhaqNSrx1ACvVKPd7YVLiz
SKBQ4EAEMEnpkx3ilVsuNvXGyUyGWvo8LtnUA+RCW6+5lVM1FwMGq543oR+PHT7Zx0/+g89SuTDp
pCGqS4tV7spkSNOhbuhsFn1xx74tnXpkISvJTe6ji0sFuRReeyEmH1RHKhTCBO0vxytJtkgcctO6
+dhr9jJLwSYYRzClxSmtmztBnhtfNIMI1PX3AgMBAAGjggEEMIIBADAMBgNVHRMBAf8EAjAAMFYG
CWCGSAGG+EIBDQRJFkdUbyBnZXQgeW91ciBvd24gY2VydGlmaWNhdGUgZm9yIEZSRUUgaGVhZCBv
dmVyIHRvIGh0dHA6Ly93d3cuQ0FjZXJ0Lm9yZzBABgNVHSUEOTA3BggrBgEFBQcDBAYIKwYBBQUH
AwIGCisGAQQBgjcKAwQGCisGAQQBgjcKAwMGCWCGSAGG+EIEATAyBggrBgEFBQcBAQQmMCQwIgYI
KwYBBQUHMAGGFmh0dHA6Ly9vY3NwLmNhY2VydC5vcmcwIgYDVR0RBBswGYEXYnVua0BpYXQudW5p
LWxlaXB6aWcuZGUwDQYJKoZIhvcNAQEFBQADggIBAGOdDDo+OR6qltyae+mAMB9rFdpou04v25f/
CV4VauwyVAp43j1kqtvbSM+ZcKO9vex6K9a09a3nD45XKvKRiPOA70biVNskhrByWZHR33LBBkUT
DnyiubmTzD7rUnU/sxGgiCwIUlSVrvBpVGKtNmwfLhsY2PX6DEh7l1mLo5a2XjmnyB5Ht9cm6CZI
PPc3DX3+xs8Lf5FAfuvnXT6kP8WlECmL30z/Wo8BSrL10Fc641gzHHhId7MKc54FZ3gn870U/wCF
+5wOq4aPpvmJpr+htaWDr/uhM283+UfI8AHfHpG9XrTp31ResFXxKG63Z+cyZevBC3iear9eEa+X
g0nvml6UyT6BzTNYw8S/7mtcjNl1efiByJslMmb9hsnWp9p653e94yTb8AL+kkS0eF5azytPaLxo
Z+B3H2dY0B4XoFpVwpKQYrru7fIyqfM9RkLb+s92HpIYtPXMuVCJFxa+D3/FfEki8muBNkKld8+V
cBPudEpfJQ6bpz/qTt4iSKMWHTNEHMeYdijrdPtLrFGSrxxrcD8hwNTW/1bn5aEv8XGMDFH+5049
6ZTlD43x3ueJNvx4jJCedn+ebidmD

...[email truncated]...


This post was automatically imported from historical nagios-devel mailing list archives
Original poster: [email protected]
Locked