Blame SOURCES/readline-6.2-rl_trace.patch

cd703d
diff --git a/util.c b/util.c
cd703d
index 6c68ad8..713e637 100644
cd703d
--- a/util.c
cd703d
+++ b/util.c
cd703d
@@ -493,10 +493,13 @@ _rl_trace (va_alist)
cd703d
 
cd703d
   if (_rl_tracefp == 0)
cd703d
     _rl_tropen ();
cd703d
+  if (!_rl_tracefp)
cd703d
+    goto out;
cd703d
   vfprintf (_rl_tracefp, format, args);
cd703d
   fprintf (_rl_tracefp, "\n");
cd703d
   fflush (_rl_tracefp);
cd703d
 
cd703d
+out:
cd703d
   va_end (args);
cd703d
 }
cd703d
 
cd703d
@@ -509,16 +512,17 @@ _rl_tropen ()
cd703d
     fclose (_rl_tracefp);
cd703d
   sprintf (fnbuf, "/var/tmp/rltrace.%ld", getpid());
cd703d
   unlink(fnbuf);
cd703d
-  _rl_tracefp = fopen (fnbuf, "w+");
cd703d
+  _rl_tracefp = fopen (fnbuf, "w+xe");
cd703d
   return _rl_tracefp != 0;
cd703d
 }
cd703d
 
cd703d
 int
cd703d
 _rl_trclose ()
cd703d
 {
cd703d
-  int r;
cd703d
+  int r = 0;
cd703d
 
cd703d
-  r = fclose (_rl_tracefp);
cd703d
+  if (_rl_tracefp)
cd703d
+    r = fclose (_rl_tracefp);
cd703d
   _rl_tracefp = 0;
cd703d
   return r;
cd703d
 }