summaryrefslogtreecommitdiff
path: root/x11/cinnamon-screensaver/files/patch-src_gs-auth-helper.c
diff options
context:
space:
mode:
authorRene Ladan <rene@FreeBSD.org>2021-01-02 11:21:30 +0000
committerRene Ladan <rene@FreeBSD.org>2021-01-02 11:21:30 +0000
commit474895cdb67df33222fa2b2e67a4c6fc7dea0fa7 (patch)
tree88f0bd8b077f4fe5cb17646d5336161aa4610b11 /x11/cinnamon-screensaver/files/patch-src_gs-auth-helper.c
parentarchivers/urbackup-client: update 2.4.10 -> 2.4.11.0 (diff)
Upgrade the Cinnamon desktop environment to version 4.8
This version uses Python 3 instead of the expired Python 2.7 From the main PR (249856): " There are a couple known issues: * x11-fm/nemo crashes upon closing a window or tab. * x11/cinnamon-screensaver unlocking doesn't work, most likely due to a missing PAM (Linux-PAM?) integration. Both of these issues are being worked on. I've been dogfooding since Cinnamon 4.0, and apart from those issues, everything works." PR: 249771 PR: 249851 PR: 249855 PR: 249856 PR: 249857 PR: 249858 Submitted by: Charlie Li
Diffstat (limited to 'x11/cinnamon-screensaver/files/patch-src_gs-auth-helper.c')
-rw-r--r--x11/cinnamon-screensaver/files/patch-src_gs-auth-helper.c201
1 files changed, 0 insertions, 201 deletions
diff --git a/x11/cinnamon-screensaver/files/patch-src_gs-auth-helper.c b/x11/cinnamon-screensaver/files/patch-src_gs-auth-helper.c
deleted file mode 100644
index 00e8766f402c..000000000000
--- a/x11/cinnamon-screensaver/files/patch-src_gs-auth-helper.c
+++ /dev/null
@@ -1,201 +0,0 @@
---- src/gs-auth-helper.c.orig 2011-03-16 17:24:06.000000000 -0500
-+++ src/gs-auth-helper.c 2011-03-16 17:23:55.000000000 -0500
-@@ -0,0 +1,198 @@
-+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
-+ *
-+ * written by Olaf Kirch <okir@suse.de>
-+ * xscreensaver, Copyright (c) 1993-2004 Jamie Zawinski <jwz@jwz.org>
-+ *
-+ * Permission to use, copy, modify, distribute, and sell this software and its
-+ * documentation for any purpose is hereby granted without fee, provided that
-+ * the above copyright notice appear in all copies and that both that
-+ * copyright notice and this permission notice appear in supporting
-+ * documentation. No representations are made about the suitability of this
-+ * software for any purpose. It is provided "as is" without express or
-+ * implied warranty.
-+ */
-+
-+/* The idea here is to be able to run gnome-screensaver-dialog without any setuid bits.
-+ * Password verification happens through an external program that you feed
-+ * your password to on stdin. The external command is invoked with a user
-+ * name argument.
-+ *
-+ * The external helper does whatever authentication is necessary. Currently,
-+ * SuSE uses "unix2_chkpwd", which is a variation of "unix_chkpwd" from the
-+ * PAM distribution.
-+ *
-+ * Normally, the password helper should just authenticate the calling user
-+ * (i.e. based on the caller's real uid). This is in order to prevent
-+ * brute-forcing passwords in a shadow environment. A less restrictive
-+ * approach would be to allow verifying other passwords as well, but always
-+ * with a 2 second delay or so. (Not sure what SuSE's "unix2_chkpwd"
-+ * currently does.)
-+ * -- Olaf Kirch <okir@suse.de>, 16-Dec-2003
-+ */
-+
-+#include "config.h"
-+
-+#include <stdlib.h>
-+#ifdef HAVE_UNISTD_H
-+# include <unistd.h>
-+#endif
-+
-+#include <stdio.h>
-+#include <string.h>
-+#include <sys/types.h>
-+#include <pwd.h>
-+#include <errno.h>
-+#include <sys/wait.h>
-+
-+#include <glib.h>
-+#include <glib/gstdio.h>
-+
-+#include "gs-auth.h"
-+#include "subprocs.h"
-+
-+static gboolean verbose_enabled = FALSE;
-+
-+GQuark
-+gs_auth_error_quark (void)
-+{
-+ static GQuark quark = 0;
-+ if (! quark) {
-+ quark = g_quark_from_static_string ("gs_auth_error");
-+ }
-+
-+ return quark;
-+}
-+
-+void
-+gs_auth_set_verbose (gboolean enabled)
-+{
-+ verbose_enabled = enabled;
-+}
-+
-+gboolean
-+gs_auth_get_verbose (void)
-+{
-+ return verbose_enabled;
-+}
-+
-+static gboolean
-+ext_run (const char *user,
-+ const char *typed_passwd,
-+ gboolean verbose)
-+{
-+ int pfd[2], status;
-+ pid_t pid;
-+
-+ if (pipe (pfd) < 0) {
-+ return 0;
-+ }
-+
-+ if (verbose) {
-+ g_message ("ext_run (%s, %s)",
-+ PASSWD_HELPER_PROGRAM, user);
-+ }
-+
-+ block_sigchld ();
-+
-+ if ((pid = fork ()) < 0) {
-+ close (pfd [0]);
-+ close (pfd [1]);
-+ return FALSE;
-+ }
-+
-+ if (pid == 0) {
-+ close (pfd [1]);
-+ if (pfd [0] != 0) {
-+ dup2 (pfd [0], 0);
-+ }
-+
-+ /* Helper is invoked as helper service-name [user] */
-+ execlp (PASSWD_HELPER_PROGRAM, PASSWD_HELPER_PROGRAM, "gnome-screensaver", user, NULL);
-+ if (verbose) {
-+ g_message ("%s: %s", PASSWD_HELPER_PROGRAM, g_strerror (errno));
-+ }
-+
-+ exit (1);
-+ }
-+
-+ close (pfd [0]);
-+
-+ /* Write out password to helper process */
-+ if (!typed_passwd) {
-+ typed_passwd = "";
-+ }
-+ write (pfd [1], typed_passwd, strlen (typed_passwd));
-+ close (pfd [1]);
-+
-+ while (waitpid (pid, &status, 0) < 0) {
-+ if (errno == EINTR) {
-+ continue;
-+ }
-+
-+ if (verbose) {
-+ g_message ("ext_run: waitpid failed: %s\n",
-+ g_strerror (errno));
-+ }
-+
-+ unblock_sigchld ();
-+ return FALSE;
-+ }
-+
-+ unblock_sigchld ();
-+
-+ if (! WIFEXITED (status) || WEXITSTATUS (status) != 0) {
-+ return FALSE;
-+ }
-+
-+ return TRUE;
-+}
-+
-+gboolean
-+gs_auth_verify_user (const char *username,
-+ const char *display,
-+ GSAuthMessageFunc func,
-+ gpointer data,
-+ GError **error)
-+{
-+ gboolean res = FALSE;
-+ char *password;
-+
-+ password = NULL;
-+
-+ /* ask for the password for user */
-+ if (func != NULL) {
-+ func (GS_AUTH_MESSAGE_PROMPT_ECHO_OFF,
-+ "Password: ",
-+ &password,
-+ data);
-+ }
-+
-+ if (password == NULL) {
-+ return FALSE;
-+ }
-+
-+ res = ext_run (username, password, gs_auth_get_verbose ());
-+
-+ return res;
-+}
-+
-+gboolean
-+gs_auth_init (void)
-+{
-+ return TRUE;
-+}
-+
-+gboolean
-+gs_auth_priv_init (void)
-+{
-+ /* Make sure the passwd helper exists */
-+ if (g_access (PASSWD_HELPER_PROGRAM, X_OK) < 0) {
-+ g_warning ("%s does not exist. "
-+ "password authentication via "
-+ "external helper will not work.",
-+ PASSWD_HELPER_PROGRAM);
-+ return FALSE;
-+ }
-+
-+ return TRUE;
-+}