[krb5-auth-dialog: 4/15] Use GcrEtnryBuffer




commit 0ae0f4736126ec54c2a4f6188ee307dd4cfd1b2c
Author: Guido Günther <agx sigxcpu org>
Date:   Sat Feb 6 17:10:27 2021 +0100

    Use GcrEtnryBuffer
    
    Drop custom secmem implementation in favour of GcrEntryBuffer

 .gitlab-ci.yml        |   1 +
 Makefile.am           |   2 +-
 configure.ac          |  21 +--
 po/POTFILES.in        |   3 +-
 secmem/Makefile.am    |  31 ----
 secmem/Manifest       |   7 -
 secmem/memory.h       |  40 -----
 secmem/secmem-util.h  |   3 -
 secmem/secmem.c       | 448 --------------------------------------------------
 secmem/util.c         | 139 ----------------
 secmem/util.h         |  66 --------
 src/Makefile.am       |   8 +-
 src/ka-entry-buffer.c | 224 -------------------------
 src/ka-entry-buffer.h |  57 -------
 src/ka-kerberos.c     |  18 --
 src/ka-pwdialog.c     |   9 +-
 16 files changed, 12 insertions(+), 1065 deletions(-)
---
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index ea9bc45..208c3c9 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -8,6 +8,7 @@ variables:
       gnome-common
       intltool
       itstool
+      libgcr-3-dev
       libglib2.0-dev
       libgtk-3-dev
       libkrb5-dev
diff --git a/Makefile.am b/Makefile.am
index 85b7cb4..7d3c104 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,6 +1,6 @@
 NULL = 
 
-SUBDIRS = secmem src po etpo icons help examples plugins
+SUBDIRS = src po etpo icons help examples plugins
 
 EXTRA_DIST = \
        krb5-auth-dialog.spec \
diff --git a/configure.ac b/configure.ac
index 4a5bd8d..49a18e1 100644
--- a/configure.ac
+++ b/configure.ac
@@ -29,10 +29,12 @@ YELP_HELP_INIT
 
 GTK_REQUIRED=3.14
 GLIB_REQUIRED=2.32
+GCR_REQUIRED=3.7.5
 
 PKG_CHECK_MODULES(GTK, [gtk+-3.0 >= $GTK_REQUIRED, glib-2.0 >= $GLIB_REQUIRED])
 PKG_CHECK_MODULES(GIO, [gio-2.0 >= $GLIB_REQUIRED, gio-unix-2.0])
 PKG_CHECK_MODULES(GMODULE, gmodule-2.0)
+PKG_CHECK_MODULES(GCR, [gcr-3 >= $GCR_REQUIRED])
 
 dnl check for deprecated symbols:
 dnl GNOME_MAINTAINER_MODE_DEFINES
@@ -136,24 +138,6 @@ CFLAGS="$savedCFLAGS"
 LIBS="$savedLIBS"
 
 
-dnl secmem
-dnl Checks for library functions.
-AC_CHECK_FUNCS(seteuid stpcpy mmap)
-GNUPG_CHECK_MLOCK
-GNUPG_CHECK_TYPEDEF(byte, HAVE_BYTE_TYPEDEF)
-GNUPG_CHECK_TYPEDEF(ulong, HAVE_ULONG_TYPEDEF)
-dnl Check for libcap
-AC_ARG_WITH([libcap], AS_HELP_STRING([--without-libcap],[Disable support for capabilities library]))
-if test "x$with_libcap" != "xno"; then
-  AC_PATH_PROG(SETCAP, setcap, :, "$PATH:/sbin:/usr/sbin")
-  AC_CHECK_LIB(cap, cap_set_proc, [
-    AC_DEFINE(USE_CAPABILITIES,1,[The capabilities support library is installed])
-    LIBCAP=-lcap
-  ])
-fi
-AC_SUBST(LIBCAP)
-
-
 check_interval=30
 AC_DEFINE_UNQUOTED(CREDENTIAL_CHECK_INTERVAL,[$check_interval],
                   [Define the to number of seconds to wait between checks of
@@ -203,7 +187,6 @@ Makefile
 krb5-auth-dialog.spec
 src/Makefile
 src/krb5-auth-dialog.1
-secmem/Makefile
 icons/Makefile
 icons/22x22/Makefile
 icons/48x48/Makefile
diff --git a/po/POTFILES.in b/po/POTFILES.in
index 044f0ae..a5bda55 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -12,5 +12,4 @@ src/ka-pwdialog.c
 src/ka-tools.c
 src/krb5-auth-dialog.appdata.xml.in
 src/krb5-auth-dialog.desktop.in
-src/org.gnome.KrbAuthDialog.gschema.xml
-secmem/util.c
+src/org.gnome.KrbAuthDialog.gschema.xml
\ No newline at end of file
diff --git a/src/Makefile.am b/src/Makefile.am
index 31af7f1..25782a5 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -54,14 +54,11 @@ krb5_auth_dialog_SOURCES =  \
        ka-preferences.h        \
        ka-closures.h           \
        ka-closures.c           \
-       ka-entry-buffer.h       \
-       ka-entry-buffer.c       \
        dummy-strings.c         \
        resources.c             \
        $(NULL)
 
 krb5_auth_dialog_CPPFLAGS = \
-       -I$(top_srcdir)/secmem \
        -DDATA_DIR=\""$(datadir)"\" \
        -DLOCALE_DIR=\""$(localedir)/"\" \
        -DBIN_DIR=\""$(bindir)/"\" \
@@ -70,6 +67,7 @@ krb5_auth_dialog_CPPFLAGS = \
        $(NULL)
 
 krb5_auth_dialog_CFLAGS = \
+       $(GCR_CFLAGS) \
        $(GMODULE_CFLAGS) \
        $(GTK_CFLAGS) \
        $(KRB5_CFLAGS) \
@@ -78,8 +76,7 @@ krb5_auth_dialog_CFLAGS = \
        $(NULL)
 
 krb5_auth_dialog_LDADD = \
-       $(top_builddir)/secmem/libsecmem.a \
-       $(LIBCAP) \
+       $(GCR_LIBS) \
        $(KRB5_LIBS) \
        $(GIO_LIBS) \
        $(GMODULE_LIBS) \
@@ -87,7 +84,6 @@ krb5_auth_dialog_LDADD = \
        $(NULL)
 
 AM_CPPFLAGS = \
-       -I $(top_srcdir)/secmem/ \
        $(DISABLE_DEPRECATED) \
        -DG_LOG_DOMAIN="\"KrbAuthDialog\"" \
        $(NULL)
diff --git a/src/ka-kerberos.c b/src/ka-kerberos.c
index 9c2b9b7..aa885aa 100644
--- a/src/ka-kerberos.c
+++ b/src/ka-kerberos.c
@@ -31,9 +31,6 @@
 #include <glib/gi18n.h>
 #include <gio/gio.h>
 
-#include "secmem-util.h"
-#include "memory.h"
-
 #include "ka-kerberos.h"
 #include "ka-applet-priv.h"
 #include "ka-pwdialog.h"
@@ -1030,20 +1027,6 @@ ka_grab_credentials (KaApplet *applet)
 }
 
 
-static void
-ka_secmem_init (void)
-{
-    /* Initialize secure memory.  1 is too small, so the default size
-       will be used.  */
-    secmem_init (1);
-    secmem_set_flags (SECMEM_WARN);
-    drop_privs ();
-
-    if (atexit (secmem_term))
-        g_error ("Couln't register atexit handler");
-}
-
-
 static void
 ka_nm_init (void)
 {
@@ -1062,7 +1045,6 @@ ka_kerberos_init (KaApplet *applet)
 {
     gboolean ret;
 
-    ka_secmem_init ();
     ret = ka_krb5_context_init ();
     ka_nm_init ();
     g_timeout_add_seconds (CREDENTIAL_CHECK_INTERVAL,
diff --git a/src/ka-pwdialog.c b/src/ka-pwdialog.c
index 89be0a1..81f371b 100644
--- a/src/ka-pwdialog.c
+++ b/src/ka-pwdialog.c
@@ -24,7 +24,9 @@
 #include "ka-applet-priv.h"
 #include "ka-kerberos.h"
 #include "ka-pwdialog.h"
-#include "ka-entry-buffer.h"
+
+#define GCR_API_SUBJECT_TO_CHANGE
+#include <gcr/gcr.h>
 
 struct _KaPwDialog {
     GtkDialog parent;
@@ -125,12 +127,11 @@ ka_pwdialog_class_init (KaPwDialogClass * klass)
 
 static void add_password_entry (KaPwDialogPrivate *priv)
 {
-    KaEntryBuffer *buffer = ka_entry_buffer_new ();
+    g_autoptr (GtkEntryBuffer) buffer = gcr_secure_entry_buffer_new ();
 
     priv->pw_entry =
-        GTK_WIDGET (gtk_entry_new_with_buffer (GTK_ENTRY_BUFFER (buffer)));
+        GTK_WIDGET (gtk_entry_new_with_buffer (buffer));
     gtk_entry_set_visibility (GTK_ENTRY (priv->pw_entry), FALSE);
-    g_object_unref (buffer);
 
     gtk_container_add (GTK_CONTAINER (priv->entry_hbox), priv->pw_entry);
     gtk_entry_set_activates_default (GTK_ENTRY (priv->pw_entry), TRUE);


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]