Sophie

Sophie

distrib > Mandriva > mes5 > x86_64 > by-pkgid > ef50f9e78029c2bddc484c4777233cdf > files > 2

pinentry-0.7.5-2mdv2009.0.src.rpm

Index: gtk+-2/gtksecentry.c
===================================================================
--- gtk+-2/gtksecentry.c	(revision 180)
+++ gtk+-2/gtksecentry.c	(working copy)
@@ -256,7 +256,7 @@
 
 static GtkWidgetClass *parent_class = NULL;
 
-gboolean g_use_secure_mem = FALSE;
+extern gboolean g_use_secure_mem;
 
 #  define g_sec_new(type, count)	  \
       ((type *) g_sec_malloc ((unsigned) sizeof (type) * (count)))
@@ -269,85 +269,6 @@
 				} while(0)
 
 
-gpointer
-g_malloc(gulong size)
-{
-    gpointer p;
-
-    if (size == 0)
-	return NULL;
-
-    if (g_use_secure_mem)
-	p = (gpointer) secmem_malloc(size);
-    else
-	p = (gpointer) malloc(size);
-    if (!p)
-	g_error("could not allocate %ld bytes", size);
-
-    return p;
-}
-
-gpointer
-g_malloc0(gulong size)
-{
-    gpointer p;
-
-    if (size == 0)
-	return NULL;
-
-    if (g_use_secure_mem) {
-	p = (gpointer) secmem_malloc(size);
-	if (p)
-	    memset(p, 0, size);
-    } else
-	p = (gpointer) calloc(size, 1);
-    if (!p)
-	g_error("could not allocate %ld bytes", size);
-
-    return p;
-}
-
-gpointer
-g_realloc(gpointer mem, gulong size)
-{
-    gpointer p;
-
-    if (size == 0) {
-	g_free(mem);
-
-	return NULL;
-    }
-
-    if (!mem) {
-	if (g_use_secure_mem)
-	    p = (gpointer) secmem_malloc(size);
-	else
-	    p = (gpointer) malloc(size);
-    } else {
-	if (g_use_secure_mem) {
-	    g_assert(m_is_secure(mem));
-	    p = (gpointer) secmem_realloc(mem, size);
-	} else
-	    p = (gpointer) realloc(mem, size);
-    }
-
-    if (!p)
-	g_error("could not reallocate %lu bytes", (gulong) size);
-
-    return p;
-}
-
-void
-g_free(gpointer mem)
-{
-    if (mem) {
-	if (m_is_secure(mem))
-	    secmem_free(mem);
-	else
-	    free(mem);
-    }
-}
-
 GType
 gtk_secure_entry_get_type(void)
 {
Index: gtk+-2/pinentry-gtk-2.c
===================================================================
--- gtk+-2/pinentry-gtk-2.c	(revision 180)
+++ gtk+-2/pinentry-gtk-2.c	(working copy)
@@ -39,6 +39,7 @@
 
 #include "gtksecentry.h"
 #include "pinentry.h"
+#include "memory.h"
 
 #ifdef FALLBACK_CURSES
 #include "pinentry-curses.h"
@@ -469,12 +470,36 @@
 
 pinentry_cmd_handler_t pinentry_cmd_handler = gtk_cmd_handler;
 
+gboolean g_use_secure_mem = FALSE;
 
+static gpointer
+_malloc(gsize size) {
+  return g_use_secure_mem ? secmem_malloc(size) : malloc(size);
+}
+
+static gpointer
+_realloc(gpointer p, gsize size) {
+  return m_is_secure(p) ? secmem_realloc(p, size) : realloc(p, size);
+}
+
+static void
+_free(gpointer p) {
+  m_is_secure(p) ? secmem_free(p) : free(p);
+}
+
 int
 main (int argc, char *argv[])
 {
   pinentry_init (PGMNAME);
-    
+
+  GMemVTable mem_vtable = {
+    _malloc,
+    _realloc,
+    _free
+  };
+
+  g_mem_set_vtable (&mem_vtable);
+  
 #ifdef FALLBACK_CURSES
   if (pinentry_have_display (argc, argv))
     gtk_init (&argc, &argv);