svn commit: r337814 - head/tests/sys/kqueue/libkqueue

David Bright dab at FreeBSD.org
Tue Aug 14 19:31:08 UTC 2018


Author: dab
Date: Tue Aug 14 19:31:06 2018
New Revision: 337814
URL: https://svnweb.freebsd.org/changeset/base/337814

Log:
  Fix several (more) memory leaks.
  
  A follow-up to r337812 to catch a couple more memory leaks that should
  have been included in that change.
  
  Reported by:	Coverity
  CID:		1296064, 1296067 (for real this time)
  MFC after:	3 days
  X-MFC-with:	r337812
  Sponsored by:	Dell EMC

Modified:
  head/tests/sys/kqueue/libkqueue/main.c

Modified: head/tests/sys/kqueue/libkqueue/main.c
==============================================================================
--- head/tests/sys/kqueue/libkqueue/main.c	Tue Aug 14 19:21:31 2018	(r337813)
+++ head/tests/sys/kqueue/libkqueue/main.c	Tue Aug 14 19:31:06 2018	(r337814)
@@ -235,10 +235,14 @@ kevent_add(int kqfd, struct kevent *kev, 
         intptr_t  data,
         void      *udata)
 {
+    char *kev_str;
+    
     EV_SET(kev, ident, filter, flags, fflags, data, NULL);    
     if (kevent(kqfd, kev, 1, NULL, 0, NULL) < 0) {
-        printf("Unable to add the following kevent:\n%s\n",
-                kevent_to_str(kev));
+        kev_str = kevent_to_str(kev);
+	printf("Unable to add the following kevent:\n%s\n",
+                kev_str);
+	free(kev_str);
         err(1, "kevent(): %s", strerror(errno));
     }
 }
@@ -246,6 +250,9 @@ kevent_add(int kqfd, struct kevent *kev, 
 void
 kevent_cmp(struct kevent *k1, struct kevent *k2)
 {
+    char *kev1_str;
+    char *kev2_str;
+    
 /* XXX-
    Workaround for inconsistent implementation of kevent(2) 
  */
@@ -258,8 +265,12 @@ kevent_cmp(struct kevent *k1, struct kevent *k2)
       k1->data != k2->data || k1->udata != k2->udata ||
       k1->ext[0] != k2->ext[0] || k1->ext[1] != k2->ext[1] ||
       k1->ext[0] != k2->ext[2] || k1->ext[0] != k2->ext[3]) {
+        kev1_str = kevent_to_str(k1);
+	kev2_str = kevent_to_str(k2);
         printf("kevent_cmp: mismatch:\n  %s !=\n  %s\n", 
-              kevent_to_str(k1), kevent_to_str(k2));
+	       kev1_str, kev2_str);
+	free(kev1_str);
+	free(kev2_str);
         abort();
     }
 }


More information about the svn-src-all mailing list