Hello community, here is the log from the commit of package pinentry for openSUSE:Factory checked in at 2015-12-18 21:52:13 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/pinentry (Old) and /work/SRC/openSUSE:Factory/.pinentry.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "pinentry" Changes: -------- --- /work/SRC/openSUSE:Factory/pinentry/pinentry.changes 2015-10-28 17:17:33.000000000 +0100 +++ /work/SRC/openSUSE:Factory/.pinentry.new/pinentry.changes 2015-12-18 21:52:14.000000000 +0100 @@ -1,0 +2,10 @@ +Mon Dec 14 19:50:38 UTC 2015 - andr...@suse.de + +- pinentry 0.9.7: + * Fix regressions in the Qt pinentry. + (previsouly patched, removed + pinentry-qt4-fix-qstring-conversion.patch) + * Fix minor problems pinnetyr-tty. + * New option --invisible-char. + +------------------------------------------------------------------- Old: ---- pinentry-0.9.6.tar.bz2 pinentry-0.9.6.tar.bz2.sig pinentry-qt4-fix-qstring-conversion.patch New: ---- pinentry-0.9.7.tar.bz2 pinentry-0.9.7.tar.bz2.sig ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ pinentry.spec ++++++ --- /var/tmp/diff_new_pack.WG61qB/_old 2015-12-18 21:52:15.000000000 +0100 +++ /var/tmp/diff_new_pack.WG61qB/_new 2015-12-18 21:52:15.000000000 +0100 @@ -21,7 +21,7 @@ %define ncurses %(xxx="`readlink -f %{_includedir}/ncurses.h`"; echo $xxx) %define nmajor %(grep NCURSES_VERSION_MAJOR < %{_includedir}/ncurses.h) Name: pinentry -Version: 0.9.6 +Version: 0.9.7 Release: 0 Summary: Collection of Simple PIN or Passphrase Entry Dialogs License: GPL-2.0+ @@ -34,7 +34,6 @@ Patch1: pinentry-0.7.2-gtk+-2.4.diff # PATCH-FIX-SUSE make it build with ncurses ABI 6 Patch7: pinentry-ncurses6.diff -Patch8: pinentry-qt4-fix-qstring-conversion.patch BuildRequires: libassuan-devel >= 2.1.0 BuildRequires: libgpg-error-devel >= 1.16 BuildRequires: libqt4-devel @@ -107,7 +106,6 @@ %setup -q %patch1 -p1 %patch7 -%patch8 -p1 %build # Regenerate moc's ++++++ pinentry-0.9.6.tar.bz2 -> pinentry-0.9.7.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pinentry-0.9.6/ChangeLog new/pinentry-0.9.7/ChangeLog --- old/pinentry-0.9.6/ChangeLog 2015-09-10 20:33:10.000000000 +0200 +++ new/pinentry-0.9.7/ChangeLog 2015-12-07 10:36:13.000000000 +0100 @@ -1,3 +1,53 @@ +2015-12-07 Werner Koch <w...@gnupg.org> + + Release 0.9.7. + +2015-12-01 Werner Koch <w...@gnupg.org> + + Remove unused code. + * secmem/util.c (lower_privs, raise_privs): Remove commented + functions. + +2015-11-27 Neal H. Walfield <n...@gnu.org> + + tty: Fix formatting. + * tty/pinentry-tty.c (password): Remove trailing space. + +2015-11-18 Neal H. Walfield <n...@gnu.org> + + tty: Flush output. Show an error if an invalid option is selected. + * tty/pinentry-tty.c (confirm): Flush the output after printing the + prompt. Echo what the user typed. If the user's selection is + invalid, indicate as much. + +2015-10-22 Dirk Mueller <d...@dmllr.de> + + Qt: Do not use temporary reference to utf8 pin. + * qt/main.cpp (qt_cmd_handler): Keep utf8 pin byte array. + +2015-10-02 Andre Heinecke <aheine...@intevation.de> + + Qt: Fix assignment of have_qt5_libs variable. + * m4/qt.m4 (FIND_QT): Remove spaces in variable assignment. + + Qt: Fix quoting of have_qt5_libs init in FIND_QT. + * m4/qt.m4 (FIND_QT): Quote initialization of have_qt5_libs var. + +2015-09-25 Andre Heinecke <aheine...@intevation.de> + + Add option to disable looking for qt5. + * m4/qt.m4 (FIND_QT): Add --disable-pinentry-qt5 option to + disable qt5 support even if it is available. + +2015-09-16 Werner Koch <w...@gnupg.org> + + Add option "invisible-char". + * pinentry/pinentry.h (struct pinentry): Add field invisible_char. + * pinentry/pinentry.c (pinentry_reset): Restore that. + (option_handler): Add option "invisible-char". + * gtk+-2/pinentry-gtk-2.c (create_window): Set the invisible char if + given. + 2015-09-10 Werner Koch <w...@gnupg.org> Release 0.9.6. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pinentry-0.9.6/NEWS new/pinentry-0.9.7/NEWS --- old/pinentry-0.9.6/NEWS 2015-09-10 20:30:37.000000000 +0200 +++ new/pinentry-0.9.7/NEWS 2015-12-07 10:32:54.000000000 +0100 @@ -1,3 +1,13 @@ +Noteworthy changes in version 0.9.7 (2015-12-07) +------------------------------------------------ + + * Fix regressions in the Qt pinentry. + + * Fix minor problems pinnetyr-tty. + + * New option --invisible-char. + + Noteworthy changes in version 0.9.6 (2015-09-10) ------------------------------------------------ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pinentry-0.9.6/VERSION new/pinentry-0.9.7/VERSION --- old/pinentry-0.9.6/VERSION 2015-09-10 20:33:10.000000000 +0200 +++ new/pinentry-0.9.7/VERSION 2015-12-07 10:36:13.000000000 +0100 @@ -1 +1 @@ -0.9.6 +0.9.7 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pinentry-0.9.6/configure new/pinentry-0.9.7/configure --- old/pinentry-0.9.6/configure 2015-09-10 20:32:24.000000000 +0200 +++ new/pinentry-0.9.7/configure 2015-12-07 10:34:42.000000000 +0100 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for pinentry 0.9.6. +# Generated by GNU Autoconf 2.69 for pinentry 0.9.7. # # Report bugs to <http://bugs.gnupg.org>. # @@ -580,8 +580,8 @@ # Identity of this package. PACKAGE_NAME='pinentry' PACKAGE_TARNAME='pinentry' -PACKAGE_VERSION='0.9.6' -PACKAGE_STRING='pinentry 0.9.6' +PACKAGE_VERSION='0.9.7' +PACKAGE_STRING='pinentry 0.9.7' PACKAGE_BUGREPORT='http://bugs.gnupg.org' PACKAGE_URL='' @@ -817,6 +817,7 @@ enable_pinentry_gnome3 enable_libsecret enable_pinentry_qt +enable_pinentry_qt5 ' ac_precious_vars='build_alias host_alias @@ -1375,7 +1376,7 @@ # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures pinentry 0.9.6 to adapt to many kinds of systems. +\`configure' configures pinentry 0.9.7 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1445,7 +1446,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of pinentry 0.9.6:";; + short | recursive ) echo "Configuration of pinentry 0.9.7:";; esac cat <<\_ACEOF @@ -1476,6 +1477,7 @@ build GNOME 3 pinentry --enable-libsecret optionally cache passphrases using libsecret --enable-pinentry-qt build qt pinentry + --disable-pinentry-qt5 Don't use qt5 even if it is available. Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] @@ -1584,7 +1586,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -pinentry configure 0.9.6 +pinentry configure 0.9.7 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2045,7 +2047,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by pinentry $as_me 0.9.6, which was +It was created by pinentry $as_me 0.9.7, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -2912,7 +2914,7 @@ # Define the identity of the package. PACKAGE='pinentry' - VERSION='0.9.6' + VERSION='0.9.7' cat >>confdefs.h <<_ACEOF @@ -9682,6 +9684,17 @@ if test "$pinentry_qt" != "no"; then + # Check whether --enable-pinentry-qt5 was given. +if test "${enable_pinentry_qt5+set}" = set; then : + enableval=$enable_pinentry_qt5; enable_pinentry_qt5=$enableval +else + enable_pinentry_qt5="try" +fi + + + have_qt5_libs="no"; + + if test "$enable_pinentry_qt5" != "no"; then pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Qt5Core >= 5.0.0 Qt5Gui >= 5.0.0 Qt5Widgets >= 5.0.0" >&5 @@ -9754,10 +9767,10 @@ have_qt5_libs="yes" fi - if "$PKG_CONFIG" --variable qt_config Qt5Core | grep -q "reduce_relocations"; then - PINENTRY_QT_CFLAGS="$PINENTRY_QT_CFLAGS -fpic" + if "$PKG_CONFIG" --variable qt_config Qt5Core | grep -q "reduce_relocations"; then + PINENTRY_QT_CFLAGS="$PINENTRY_QT_CFLAGS -fpic" + fi fi - if test "$have_qt5_libs" = "yes"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}moc", so it can be a program name with args. @@ -11099,7 +11112,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by pinentry $as_me 0.9.6, which was +This file was extended by pinentry $as_me 0.9.7, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -11165,7 +11178,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -pinentry config.status 0.9.6 +pinentry config.status 0.9.7 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" @@ -12039,7 +12052,7 @@ Pinentry v${VERSION} has been configured as follows: - Revision: 192ee8a (6446) + Revision: 97b6ea5 (38838) Platform: $host Curses Pinentry ..: $pinentry_curses @@ -12061,7 +12074,7 @@ Pinentry v${VERSION} has been configured as follows: - Revision: 192ee8a (6446) + Revision: 97b6ea5 (38838) Platform: $host Curses Pinentry ..: $pinentry_curses diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pinentry-0.9.6/configure.ac new/pinentry-0.9.7/configure.ac --- old/pinentry-0.9.6/configure.ac 2015-09-10 20:21:54.000000000 +0200 +++ new/pinentry-0.9.7/configure.ac 2015-09-16 19:08:29.000000000 +0200 @@ -26,7 +26,7 @@ # (git tag -s pinentry-n.m.k) and run "./autogen.sh --force". Please # bump the version number immediately after the release, do another # commit, and a push so that the git magic is able to work. -m4_define(mym4_version, [0.9.6]) +m4_define(mym4_version, [0.9.7]) # Below is m4 magic to extract and compute the git revision number, # the decimalized short revision number, a beta version string and a diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pinentry-0.9.6/doc/HACKING new/pinentry-0.9.7/doc/HACKING --- old/pinentry-0.9.6/doc/HACKING 2013-03-21 09:43:50.000000000 +0100 +++ new/pinentry-0.9.7/doc/HACKING 2015-12-01 13:00:32.000000000 +0100 @@ -21,3 +21,18 @@ in a "real" ChangeLog file, but keep the maximum line length at 72 or smaller, so that the generated ChangeLog lines, each with its leading TAB, will not exceed 80 columns. + + For more infomration please check the HACHING file from the GnuPG + project. + +* String translation + + Pinentry does not not require any translation files because it + expects that all strings are provided localized by the caller. This + is due to the design constraint to keep the tool simple and also to + make sure that translations match those of GnuPG. + + The available translated strings can be found in GnuPG, file + agent/call-pinentry, function start_pinentry. If a string is not + available the Pinentry code uses a default as a fallback. However, + it is highly suggested to provide Pinentry with translated strings. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pinentry-0.9.6/doc/pinentry.info new/pinentry-0.9.7/doc/pinentry.info --- old/pinentry-0.9.6/doc/pinentry.info 2015-09-10 20:33:10.000000000 +0200 +++ new/pinentry-0.9.7/doc/pinentry.info 2015-12-07 10:36:13.000000000 +0100 @@ -8,8 +8,8 @@ This file documents the use and the internals of the PINENTRY. - This is edition 0.9.6, last updated 10 September 2015, of 'The -'PINEntry' Manual', for version 0.9.6. + This is edition 0.9.7, last updated 16 September 2015, of 'The +'PINEntry' Manual', for version 0.9.7. Published by g10 Code GmbH H�ttenstr. 61 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pinentry-0.9.6/doc/stamp-vti new/pinentry-0.9.7/doc/stamp-vti --- old/pinentry-0.9.6/doc/stamp-vti 2015-09-10 20:33:09.000000000 +0200 +++ new/pinentry-0.9.7/doc/stamp-vti 2015-12-07 10:36:06.000000000 +0100 @@ -1,4 +1,4 @@ -@set UPDATED 10 September 2015 +@set UPDATED 16 September 2015 @set UPDATED-MONTH September 2015 -@set EDITION 0.9.6 -@set VERSION 0.9.6 +@set EDITION 0.9.7 +@set VERSION 0.9.7 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pinentry-0.9.6/doc/version.texi new/pinentry-0.9.7/doc/version.texi --- old/pinentry-0.9.6/doc/version.texi 2015-09-10 20:33:09.000000000 +0200 +++ new/pinentry-0.9.7/doc/version.texi 2015-12-07 10:36:06.000000000 +0100 @@ -1,4 +1,4 @@ -@set UPDATED 10 September 2015 +@set UPDATED 16 September 2015 @set UPDATED-MONTH September 2015 -@set EDITION 0.9.6 -@set VERSION 0.9.6 +@set EDITION 0.9.7 +@set VERSION 0.9.7 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pinentry-0.9.6/gtk+-2/pinentry-gtk-2.c new/pinentry-0.9.7/gtk+-2/pinentry-gtk-2.c --- old/pinentry-0.9.6/gtk+-2/pinentry-gtk-2.c 2015-09-10 20:21:54.000000000 +0200 +++ new/pinentry-0.9.7/gtk+-2/pinentry-gtk-2.c 2015-09-16 20:38:05.000000000 +0200 @@ -1,7 +1,7 @@ /* pinentry-gtk-2.c Copyright (C) 1999 Robert Bihlmeyer <ro...@orcus.priv.at> Copyright (C) 2001, 2002, 2007, 2015 g10 Code GmbH - Copyright (C) 2004 by Albrecht Dre� <albrecht.dr...@arcor.de> + Copyright (C) 2004 by Albrecht Dreß <albrecht.dr...@arcor.de> pinentry-gtk-2 is a pinentry application for the Gtk+-2 widget set. It tries to follow the Gnome Human Interface Guide as close as @@ -498,6 +498,20 @@ entry = gtk_entry_new (); gtk_entry_set_visibility (GTK_ENTRY (entry), FALSE); + /* Allow the user to set a narrower invisible character than the + large dot currently used by GTK. Examples are "•★Ⓐ" */ + if (pinentry->invisible_char) + { + gunichar *uch; + /*""*/ + uch = g_utf8_to_ucs4 (pinentry->invisible_char, -1, NULL, NULL, NULL); + if (uch) + { + gtk_entry_set_invisible_char (GTK_ENTRY (entry), *uch); + g_free (uch); + } + } + gtk_widget_set_size_request (entry, 200, -1); g_signal_connect (G_OBJECT (entry), "changed", G_CALLBACK (changed_text_handler), entry); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pinentry-0.9.6/m4/qt.m4 new/pinentry-0.9.7/m4/qt.m4 --- old/pinentry-0.9.6/m4/qt.m4 2015-09-10 20:21:54.000000000 +0200 +++ new/pinentry-0.9.7/m4/qt.m4 2015-10-12 15:35:14.000000000 +0200 @@ -28,15 +28,24 @@ AC_DEFUN([FIND_QT], [ - PKG_CHECK_MODULES(PINENTRY_QT, - Qt5Core >= 5.0.0 Qt5Gui >= 5.0.0 Qt5Widgets >= 5.0.0, - [have_qt5_libs="yes"], - [have_qt5_libs="no"]) + AC_ARG_ENABLE(pinentry-qt5, + AC_HELP_STRING([--disable-pinentry-qt5], + [Don't use qt5 even if it is available.]), + enable_pinentry_qt5=$enableval, + enable_pinentry_qt5="try") - if "$PKG_CONFIG" --variable qt_config Qt5Core | grep -q "reduce_relocations"; then - PINENTRY_QT_CFLAGS="$PINENTRY_QT_CFLAGS -fpic" - fi + have_qt5_libs="no"; + + if test "$enable_pinentry_qt5" != "no"; then + PKG_CHECK_MODULES(PINENTRY_QT, + Qt5Core >= 5.0.0 Qt5Gui >= 5.0.0 Qt5Widgets >= 5.0.0, + [have_qt5_libs="yes"], + [have_qt5_libs="no"]) + if "$PKG_CONFIG" --variable qt_config Qt5Core | grep -q "reduce_relocations"; then + PINENTRY_QT_CFLAGS="$PINENTRY_QT_CFLAGS -fpic" + fi + fi if test "$have_qt5_libs" = "yes"; then AC_CHECK_TOOL(MOC, moc) AC_MSG_CHECKING([moc version]) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pinentry-0.9.6/pinentry/pinentry.c new/pinentry-0.9.7/pinentry/pinentry.c --- old/pinentry-0.9.6/pinentry/pinentry.c 2015-09-10 20:21:54.000000000 +0200 +++ new/pinentry-0.9.7/pinentry/pinentry.c 2015-09-16 20:47:52.000000000 +0200 @@ -95,6 +95,9 @@ int timout = pinentry.timeout; + char *invisible_char = pinentry.invisible_char; + + /* Free any allocated memory. */ if (use_defaults) { @@ -127,6 +130,11 @@ /* Reset the pinentry structure. */ memset (&pinentry, 0, sizeof (pinentry)); + /* Restore options without a default we want to preserve. */ + pinentry.invisible_char = invisible_char; + + /* Restore other options or set defaults. */ + if (use_defaults) { /* Pinentry timeout in seconds. */ @@ -878,6 +886,14 @@ return gpg_error (GPG_ERR_NOT_SUPPORTED); #endif } + else if (!strcmp (key, "invisible-char")) + { + if (pinentry.invisible_char) + free (pinentry.invisible_char); + pinentry.invisible_char = strdup (value); + if (!pinentry.invisible_char) + return gpg_error_from_syserror (); + } else return gpg_error (GPG_ERR_UNKNOWN_OPTION); return 0; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pinentry-0.9.6/pinentry/pinentry.h new/pinentry-0.9.7/pinentry/pinentry.h --- old/pinentry-0.9.6/pinentry/pinentry.h 2015-09-10 20:21:54.000000000 +0200 +++ new/pinentry-0.9.7/pinentry/pinentry.h 2015-09-16 20:40:15.000000000 +0200 @@ -193,6 +193,11 @@ to save the assuan ctx. */ void *ctx_assuan; + /* An UTF-8 string with an invisible character used to override the + default in some pinentries. Only the first character is + used. */ + char *invisible_char; + }; typedef struct pinentry *pinentry_t; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pinentry-0.9.6/qt/main.cpp new/pinentry-0.9.7/qt/main.cpp --- old/pinentry-0.9.6/qt/main.cpp 2015-09-10 20:21:54.000000000 +0200 +++ new/pinentry-0.9.7/qt/main.cpp 2015-12-01 12:52:40.000000000 +0100 @@ -190,15 +190,15 @@ if (!ret) return -1; - const char *pin = pinentry.pin().toUtf8().constData(); + QByteArray pin = pinentry.pin().toUtf8 (); - int len = strlen (pin); + int len = strlen (pin.constData ()); if (len >= 0) { pinentry_setbufferlen (pe, len + 1); if (pe->pin) { - strcpy (pe->pin, pin); + strcpy (pe->pin, pin.constData ()); return len; } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pinentry-0.9.6/secmem/util.c new/pinentry-0.9.7/secmem/util.c --- old/pinentry-0.9.6/secmem/util.c 2013-03-21 09:43:50.000000000 +0100 +++ new/pinentry-0.9.7/secmem/util.c 2015-12-01 12:53:19.000000000 +0100 @@ -41,7 +41,7 @@ /* Write DATA of size BYTES to FD, until all is written or an error occurs. */ -ssize_t +ssize_t xwrite(int fd, const void *data, size_t bytes) { char *ptr; @@ -68,7 +68,7 @@ #if 0 extern int debug; -int +int debugmsg(const char *fmt, ...) { va_list va; @@ -88,7 +88,7 @@ /* initialize uid variables */ #ifndef HAVE_DOSISH_SYSTEM -static void +static void init_uids(void) { real_uid = getuid(); @@ -98,42 +98,8 @@ #endif -#if 0 /* Not used. */ -/* lower privileges to the real user's */ -void -lower_privs() -{ - if (!uid_set) - init_uids(); - if (real_uid != file_uid) { -#ifdef HAVE_SETEUID - if (seteuid(real_uid) < 0) { - perror("lowering privileges failed"); - exit(EXIT_FAILURE); - } -#else - fprintf(stderr, _("Warning: running q-agent setuid on this system is dangerous\n")); -#endif /* HAVE_SETEUID */ - } -} -#endif /* if 0 */ - -#if 0 /* Not used. */ -/* raise privileges to the effective user's */ -void -raise_privs() -{ - assert(real_uid >= 0); /* lower_privs() must be called before this */ -#ifdef HAVE_SETEUID - if (real_uid != file_uid && seteuid(file_uid) < 0) { - perror("Warning: raising privileges failed"); - } -#endif /* HAVE_SETEUID */ -} -#endif /* if 0 */ - /* drop all additional privileges */ -void +void drop_privs() { #ifndef HAVE_DOSISH_SYSTEM diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pinentry-0.9.6/tty/pinentry-tty.c new/pinentry-0.9.7/tty/pinentry-tty.c --- old/pinentry-0.9.6/tty/pinentry-tty.c 2015-09-10 20:21:54.000000000 +0200 +++ new/pinentry-0.9.7/tty/pinentry-tty.c 2015-12-01 12:52:40.000000000 +0100 @@ -213,23 +213,28 @@ return -1; } - if (pinentry->one_button) - fprintf (ttyfo, "Press any key to continue."); - else - { - fputc ('[', ttyfo); - if (ok) - fputc (tolower (ok), ttyfo); - if (cancel) - fputc (tolower (cancel), ttyfo); - if (notok) - fputc (tolower (notok), ttyfo); - fputs("]? ", ttyfo); - } - while (1) { - int input = fgetc (ttyfi); + int input; + + if (pinentry->one_button) + fprintf (ttyfo, "Press any key to continue."); + else + { + fputc ('[', ttyfo); + if (ok) + fputc (tolower (ok), ttyfo); + if (cancel) + fputc (tolower (cancel), ttyfo); + if (notok) + fputc (tolower (notok), ttyfo); + fputs("]? ", ttyfo); + } + fflush (ttyfo); + + input = fgetc (ttyfi); + fprintf (ttyfo, "%c\n", input); + if (input == EOF || input == 0x4) /* End of file or control-d (= end of file). */ { @@ -262,10 +267,12 @@ ret = 1; break; } + else + { + fprintf (ttyfo, "Invalid selection.\n"); + } } - fputc('\n', ttyfo); - tcsetattr (fileno(ttyfi), TCSANOW, &o_term); return ret; @@ -364,7 +371,7 @@ dump_error_text (ttyfo, pinentry->error); - fprintf (ttyfo, "%s\n ", msg); + fprintf (ttyfo, "%s\n", msg); while (! done) {