[Open-scap] Fix for writing debug logs on solaris.
Jacob Varughese
jacob.varughese at oracle.com
Thu Apr 17 16:57:56 UTC 2014
Hi All,
Submitting patch for fixing the debug logging on solaris.
Please provide feedback.
Thank you,
Jacob.
-------------- next part --------------
>From 8b0b54e46b4a101ad46739f9d68d72c4b658339d Mon Sep 17 00:00:00 2001
From: Jacob Varughese <jacob.varughese at oracle.com>
Date: Thu, 17 Apr 2014 09:49:57 -0700
Subject: [PATCH] Fixed debug logging on solaris
---
src/common/debug.c | 18 ++++++++++++++++--
1 file changed, 16 insertions(+), 2 deletions(-)
diff --git a/src/common/debug.c b/src/common/debug.c
index b63097a..103d677 100644
--- a/src/common/debug.c
+++ b/src/common/debug.c
@@ -149,7 +149,11 @@ static void __oscap_vdlprintf(int level, const char *file, const char *fn, size_
else
f = file;
+#if defined(__SVR4) && defined (__sun)
+ if (lockf(fileno(__debuglog_fp), F_LOCK, 0L) == -1) {
+#else
if (flock(fileno(__debuglog_fp), LOCK_EX) == -1) {
+#endif
__UNLOCK_FP;
return;
}
@@ -177,7 +181,11 @@ static void __oscap_vdlprintf(int level, const char *file, const char *fn, size_
#endif
vfprintf(__debuglog_fp, fmt, ap);
+#if defined(__SVR4) && defined (__sun)
+ if (lockf(fileno(__debuglog_fp), F_ULOCK, 0L) == -1) {
+#else
if (flock(fileno(__debuglog_fp), LOCK_UN) == -1) {
+#endif
/* __UNLOCK_FP; */
abort();
}
@@ -231,8 +239,11 @@ void __oscap_debuglog_object (const char *file, const char *fn, size_t line, int
fprintf (__debuglog_fp, "=============== LOG: %.24s ===============\n", st);
atexit(&__oscap_debuglog_close);
}
-
+#if defined(__SVR4) && defined (__sun)
+ if (lockf (fileno (__debuglog_fp), F_LOCK, 0L) == -1) {
+#else
if (flock (fileno (__debuglog_fp), LOCK_EX | LOCK_NB) == -1) {
+#endif
__UNLOCK_FP;
return;
}
@@ -250,8 +261,11 @@ void __oscap_debuglog_object (const char *file, const char *fn, size_t line, int
}
fprintf(__debuglog_fp, "\n-----------\n");
-
+#if defined(__SVR4) && defined (__sun)
+ if (lockf (fileno (__debuglog_fp), F_ULOCK, 0L) == -1) {
+#else
if (flock (fileno (__debuglog_fp), LOCK_UN | LOCK_NB) == -1) {
+#endif
/* __UNLOCK_FP; */
abort ();
}
--
1.7.9.2
More information about the Open-scap-list
mailing list