[1893] in Moira

home help back first fref pref prev next nref lref last post

I'm an idiot

daemon@ATHENA.MIT.EDU (Garry Zacheiss)
Sat Nov 24 18:13:11 2001

Message-Id: <200111242313.SAA19252@bagheera.mit.edu>
To: moiradev@MIT.EDU
Date: Sat, 24 Nov 2001 18:13:10 -0500
From: Garry Zacheiss <zacheiss@MIT.EDU>

	My last patch freed memory twice.  Ignore it.

Garry

Index: qsubs.c
===================================================================
RCS file: /afs/athena.mit.edu/astaff/project/moiradev/repository/moira/server/qsubs.c,v
retrieving revision 1.18
diff -u -r1.18 qsubs.c
--- qsubs.c	2000/01/11 05:57:31	1.18
+++ qsubs.c	2001/11/24 21:35:38
@@ -49,28 +49,29 @@
 void list_queries(client *cl, int (*action)(int, char *[], void *),
 		  void *actarg)
 {
-  static struct query **squeries = NULL;
-  static int qcount;
+  struct query **squeries = NULL;
+  int qcount;
   struct query *q, **sq;
   char qnames[80];
   char *qnp;
   int i;
 
-  if (!squeries)
+  squeries = sq = xmalloc(QueryCount * sizeof(struct query *));
+  q = Queries;
+  for (i = 0; i < QueryCount; i++)
     {
-      squeries = sq = xmalloc(QueryCount * sizeof(struct query *));
-      q = Queries;
-      for (i = 0; i < QueryCount; i++)
+      if (q->version > cl->version)
 	{
-	  if (q->version > cl->version)
-	    continue;
-	  if (i > 0 && strcmp((*sq)->name, q->name))
-	    sq++;
-	  *sq = q++;
+	  q++;
+	  continue;
 	}
-      qcount = (sq - squeries) + 1;
-      qsort(squeries, qcount, sizeof(struct query *), qcmp);
+      if (i > 0 && strcmp((*sq)->name, q->name))
+	sq++;
+      *sq = q++;
     }
+  qcount = (sq - squeries) + 1;
+  qsort(squeries, qcount, sizeof(struct query *), qcmp);
+
   sq = squeries;
 
   qnp = qnames;
@@ -85,6 +86,8 @@
   (*action)(1, &qnp, actarg);
   strcpy(qnames, "_list_users");
   (*action)(1, &qnp, actarg);
+
+  free(squeries);
 }
 
 void help_query(struct query *q, int (*action)(int, char *[], void *),

home help back first fref pref prev next nref lref last post