[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