Author: mjg
Date: Thu Jun  2 15:52:34 2016
New Revision: 301208
URL: https://svnweb.freebsd.org/changeset/base/301208

Log:
  taskqueue: plug a leak in _taskqueue_create
  
  While here make some style fixes and postpone the sprintf so that it is
  only done when the function can no longer fail.
  
  CID:  1356041

Modified:
  head/sys/kern/subr_taskqueue.c

Modified: head/sys/kern/subr_taskqueue.c
==============================================================================
--- head/sys/kern/subr_taskqueue.c      Thu Jun  2 15:31:24 2016        
(r301207)
+++ head/sys/kern/subr_taskqueue.c      Thu Jun  2 15:52:34 2016        
(r301208)
@@ -130,14 +130,16 @@ _taskqueue_create(const char *name, int 
        char *tq_name;
 
        tq_name = malloc(TASKQUEUE_NAMELEN, M_TASKQUEUE, mflags | M_ZERO);
-       if (!tq_name)
+       if (tq_name == NULL)
                return (NULL);
 
-       snprintf(tq_name, TASKQUEUE_NAMELEN, "%s", (name) ? name : "taskqueue");
-
        queue = malloc(sizeof(struct taskqueue), M_TASKQUEUE, mflags | M_ZERO);
-       if (!queue)
+       if (queue == NULL) {
+               free(tq_name, M_TASKQUEUE);
                return (NULL);
+       }
+
+       snprintf(tq_name, TASKQUEUE_NAMELEN, "%s", (name) ? name : "taskqueue");
 
        STAILQ_INIT(&queue->tq_queue);
        TAILQ_INIT(&queue->tq_active);
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to