Explorar el Código

Moved degarble() to mem.c to avoid nmalloc/nfree
Fixed a possible bug in userrec.c regarding laston


svn: 97

Bryan Drewery hace 23 años
padre
commit
f5cf93c160
Se han modificado 3 ficheros con 34 adiciones y 35 borrados
  1. 32 0
      src/mem.c
  2. 0 31
      src/misc.c
  3. 2 4
      src/userrec.c

+ 32 - 0
src/mem.c

@@ -381,3 +381,35 @@ void n_free(void *ptr, const char *file, int line)
 #endif
   free(ptr);
 }
+
+
+#ifdef S_GARBLESTRINGS
+#define GARBLE_BUFFERS 40
+unsigned char *garble_buffer[GARBLE_BUFFERS] = {
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+};
+
+int garble_ptr = (-1);
+
+char *degarble(int len, char *g)
+{
+  int i;
+  unsigned char x;
+
+  garble_ptr++;
+  if (garble_ptr == GARBLE_BUFFERS)
+    garble_ptr = 0;
+  if (garble_buffer[garble_ptr])
+    free(garble_buffer[garble_ptr]);
+  garble_buffer[garble_ptr] = malloc(len + 1);
+  x = 0xFF;
+  for (i = 0; i < len; i++) {
+    garble_buffer[garble_ptr][i] = g[i] ^ x;
+    x = garble_buffer[garble_ptr][i];
+  }
+  garble_buffer[garble_ptr][len] = 0;
+  return (char *) garble_buffer[garble_ptr];
+}
+#endif /* S_GARBLESTRINGS */
+

+ 0 - 31
src/misc.c

@@ -2786,37 +2786,6 @@ Context;
     egg_bzero(&auth[n], sizeof(struct auth_t)); /* drummer */
 }
 
-#ifdef S_GARBLESTRINGS
-#define GARBLE_BUFFERS 40
-unsigned char *garble_buffer[GARBLE_BUFFERS] = {
-  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
-};
-
-int garble_ptr = (-1);
-
-char *degarble(int len, char *g)
-{
-  int i;
-  unsigned char x;
-
-  garble_ptr++;
-  if (garble_ptr == GARBLE_BUFFERS)
-    garble_ptr = 0;
-  if (garble_buffer[garble_ptr])
-    nfree(garble_buffer[garble_ptr]);
-  garble_buffer[garble_ptr] = nmalloc(len + 1);
-  x = 0xFF;
-  for (i = 0; i < len; i++) {
-    garble_buffer[garble_ptr][i] = g[i] ^ x;
-    x = garble_buffer[garble_ptr][i];
-  }
-  garble_buffer[garble_ptr][len] = 0;
-  return (char *) garble_buffer[garble_ptr];
-}
-#endif
-
-
 char *replace (char *string, char *oldie, char *newbie)
 {
   static char newstring[1024] = "";

+ 2 - 4
src/userrec.c

@@ -802,11 +802,9 @@ void touch_laston(struct userrec *u, char *where, time_t timeval)
     } else
       li->lastonplace = NULL;
     set_user(&USERENTRY_LASTON, u, li);
-//    if(li->lastonplace)
-//      nfree(li->lastonplace);
-  } else if (timeval == 1) {
+  } else if (timeval == 1)
     set_user(&USERENTRY_LASTON, u, 0);
-  }
+
 }
 
 /*  Go through all channel records and try to find a matching