Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 26 Apr 2010 14:47:33 GMT
From:      Jonathan Anderson <jona@FreeBSD.org>
To:        Perforce Change Reviews <perforce@FreeBSD.org>
Subject:   PERFORCE change 177355 for review
Message-ID:  <201004261447.o3QElXLf033168@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://p4web.freebsd.org/@@177355?ac=10

Change 177355 by jona@jona-belle-freebsd8 on 2010/04/26 14:46:57

	Added lc_fdlist_print()

Affected files ...

.. //depot/projects/trustedbsd/capabilities/src/lib/libcapsicum/libcapsicum.h#14 edit
.. //depot/projects/trustedbsd/capabilities/src/lib/libcapsicum/libcapsicum_fdlist.c#12 edit

Differences ...

==== //depot/projects/trustedbsd/capabilities/src/lib/libcapsicum/libcapsicum.h#14 (text+ko) ====

@@ -30,7 +30,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $P4: //depot/projects/trustedbsd/capabilities/src/lib/libcapsicum/libcapsicum.h#13 $
+ * $P4: //depot/projects/trustedbsd/capabilities/src/lib/libcapsicum/libcapsicum.h#14 $
  */
 
 #ifndef _LIBCAPSICUM_H_
@@ -52,6 +52,7 @@
 struct lc_fdlist	*lc_fdlist_global(void);
 struct lc_fdlist	*lc_fdlist_dup(struct lc_fdlist *lfp_orig);
 void			 lc_fdlist_free(struct lc_fdlist *lfp);
+void			 lc_fdlist_print(struct lc_fdlist *lfp, int outFD);
 
 /*
  * Size of an FD list in bytes, including all associated string data.

==== //depot/projects/trustedbsd/capabilities/src/lib/libcapsicum/libcapsicum_fdlist.c#12 (text+ko) ====

@@ -31,12 +31,13 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $P4: //depot/projects/trustedbsd/capabilities/src/lib/libcapsicum/libcapsicum_fdlist.c#11 $
+ * $P4: //depot/projects/trustedbsd/capabilities/src/lib/libcapsicum/libcapsicum_fdlist.c#12 $
  */
 
 #include <sys/mman.h>
 #include <sys/stat.h>
 
+#define _WITH_DPRINTF
 #include <errno.h>
 #include <libcapsicum.h>
 #include <pthread.h>
@@ -202,6 +203,24 @@
 	free(lfp);
 }
 
+void
+lc_fdlist_print(struct lc_fdlist *lfp, int outFD)
+{
+	dprintf(outFD, "FD List:\n");
+	for(int i = 0; ; )
+	{
+		char *subsystem, *classname, *name;
+		int fd;
+
+		if (lc_fdlist_getentry(lfp, &subsystem, &classname, &name, &fd, &i)
+		     < 0)
+			break;
+
+		dprintf(outFD, "% 3d:\t'%s'.'%s': '%s'\n",
+		        fd, subsystem, classname, name);
+	}
+}
+
 int
 lc_fdlist_add(struct lc_fdlist *lfp, const char *subsystem,
     const char *classname, const char *name, int fd)
@@ -248,7 +267,6 @@
 			memcpy(lc_fdlist_storage_names(lfsp_copy), tmp,
 			    lfsp_copy->namelen);
 
-		free(lfsp);
 		lfsp = lfp->lf_storage = lfsp_copy;
 		free(tmp);
 	}



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201004261447.o3QElXLf033168>