https://bugs.gentoo.org/925557 https://dev.gnupg.org/D566 From 8ab1682e80a2b4185ee9ef66cbb44340245966fc Mon Sep 17 00:00:00 2001 From: Werner Koch Date: Mon, 20 Mar 2023 08:31:04 +0100 Subject: [PATCH] Fix problem with inclusion of wrong memory.h. * secmem/memory.h: Rename to ... * secmem/secmem.h: this. * pinentry/pinentry.h: Include secmem.h. Remove almost all inclusions of memory.h or replace them by "../secmem/secmem.h". -- See-also: https://dev.gnupg.org/D566 --- fltk/main.cxx | 1 - fltk/pinwindow.cxx | 2 +- gnome3/pinentry-gnome3.c | 2 -- pinentry/password-cache.c | 2 +- pinentry/pinentry-curses.c | 7 +++---- pinentry/pinentry-emacs.c | 2 +- pinentry/pinentry.c | 1 - pinentry/pinentry.h | 2 ++ secmem/Makefile.am | 2 +- secmem/secmem++.h | 2 +- secmem/secmem.c | 2 +- secmem/{memory.h => secmem.h} | 0 tqt/secqstring.h | 2 +- tty/pinentry-tty.c | 1 - w32/main.c | 1 - 15 files changed, 12 insertions(+), 17 deletions(-) rename secmem/{memory.h => secmem.h} (100%) --- a/fltk/main.cxx 2019-03-05 23:09:48.000000000 -0800 +++ b/fltk/main.cxx 2024-02-26 11:02:47.822134762 -0800 @@ -34,7 +34,6 @@ #include #include -#include "memory.h" #include #include --- a/fltk/pinwindow.cxx 2017-12-03 08:13:05.000000000 -0800 +++ b/fltk/pinwindow.cxx 2024-02-26 11:02:47.822134762 -0800 @@ -32,7 +32,7 @@ #include #include -#include "memory.h" +#include "../secmem/secmem.h" #include "encrypt.xpm" #include "icon.xpm" --- a/gnome3/pinentry-gnome3.c 2022-08-24 03:31:59.000000000 -0700 +++ b/gnome3/pinentry-gnome3.c 2024-02-26 11:02:47.822134762 -0800 @@ -30,8 +30,6 @@ #include -#include "memory.h" - #include "pinentry.h" #ifdef FALLBACK_CURSES --- a/pinentry/password-cache.c 2017-12-03 08:13:15.000000000 -0800 +++ b/pinentry/password-cache.c 2024-02-26 11:02:47.822134762 -0800 @@ -31,7 +31,7 @@ #endif #include "password-cache.h" -#include "memory.h" +#include "../secmem/secmem.h" #ifdef HAVE_LIBSECRET static const SecretSchema * --- a/pinentry/pinentry.c 2022-08-24 03:31:59.000000000 -0700 +++ b/pinentry/pinentry.c 2024-02-26 11:02:47.822134762 -0800 @@ -44,7 +44,6 @@ #include -#include "memory.h" #include "secmem-util.h" #include "argparse.h" #include "pinentry.h" --- a/pinentry/pinentry-curses.c 2022-08-24 03:31:59.000000000 -0700 +++ b/pinentry/pinentry-curses.c 2024-02-26 11:02:47.822134762 -0800 @@ -62,8 +62,6 @@ #include #endif /*HAVE_UTIME_H*/ -#include - #ifdef HAVE_WCHAR_H #include #endif /*HAVE_WCHAR_H*/ @@ -1017,10 +1015,11 @@ #ifndef HAVE_DOSISH_SYSTEM int no_input = 1; #endif - #ifdef HAVE_NCURSESW char *old_ctype = NULL; +#endif +#ifdef HAVE_NCURSESW if (pinentry->lc_ctype) { old_ctype = strdup (setlocale (LC_CTYPE, NULL)); --- a/pinentry/pinentry-emacs.c 2021-08-11 04:16:10.000000000 -0700 +++ b/pinentry/pinentry-emacs.c 2024-02-26 11:02:47.822134762 -0800 @@ -48,7 +48,7 @@ #include #include "pinentry-emacs.h" -#include "memory.h" +#include "../secmem/secmem.h" #include "secmem-util.h" /* The communication mechanism is similar to emacsclient, but there --- a/pinentry/pinentry.h 2022-08-24 03:31:59.000000000 -0700 +++ b/pinentry/pinentry.h 2024-02-26 11:02:47.822134762 -0800 @@ -21,6 +21,8 @@ #ifndef PINENTRY_H #define PINENTRY_H +#include "../secmem/secmem.h" + #ifdef __cplusplus extern "C" { #if 0 --- a/secmem/Makefile.am 2017-12-03 08:13:05.000000000 -0800 +++ b/secmem/Makefile.am 2024-02-26 11:02:47.822134762 -0800 @@ -22,7 +22,7 @@ noinst_LIBRARIES = libsecmem.a libsecmem_a_SOURCES = \ - memory.h \ + secmem.h \ secmem-util.h \ util.h \ secmem.c \ --- a/secmem/memory.h 2017-12-03 08:13:05.000000000 -0800 +++ b/secmem/memory.h 1969-12-31 16:00:00.000000000 -0800 @@ -1,55 +0,0 @@ -/* Quintuple Agent secure memory allocation - * Copyright (C) 1998,1999 Free Software Foundation, Inc. - * Copyright (C) 1999,2000 Robert Bihlmeyer - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, see . - * SPDX-License-Identifier: GPL-2.0+ - */ - -#ifndef _MEMORY_H -#define _MEMORY_H - -#include - -#ifdef __cplusplus -extern "C" { -#if 0 -} -#endif -#endif - - -/* values for flags, hardcoded in secmem.c */ -#define SECMEM_WARN 0 -#define SECMEM_DONT_WARN 1 -#define SECMEM_SUSPEND_WARN 2 - -void secmem_init( size_t npool ); -void secmem_term( void ); -void *secmem_malloc( size_t size ); -void *secmem_realloc( void *a, size_t newsize ); -void secmem_free( void *a ); -int m_is_secure( const void *p ); -void secmem_dump_stats(void); -void secmem_set_flags( unsigned flags ); -unsigned secmem_get_flags(void); -size_t secmem_get_max_size (void); - -#if 0 -{ -#endif -#ifdef __cplusplus -} -#endif -#endif /* _MEMORY_H */ --- a/secmem/secmem.c 2022-08-24 03:31:59.000000000 -0700 +++ b/secmem/secmem.c 2024-02-26 11:02:47.822134762 -0800 @@ -34,7 +34,7 @@ #endif #include -#include "memory.h" +#include "secmem.h" #ifdef ORIGINAL_GPG_VERSION #include "types.h" --- a/secmem/secmem++.h 2017-12-03 08:13:05.000000000 -0800 +++ b/secmem/secmem++.h 2024-02-26 11:02:47.822134762 -0800 @@ -19,7 +19,7 @@ #ifndef __SECMEM_SECMEMPP_H__ #define __SECMEM_SECMEMPP_H__ -#include "secmem/memory.h" +#include "../secmem/secmem.h" #include namespace secmem { --- a/secmem/secmem.h 1969-12-31 16:00:00.000000000 -0800 +++ b/secmem/secmem.h 2024-02-26 11:02:47.822134762 -0800 @@ -0,0 +1,55 @@ +/* Quintuple Agent secure memory allocation + * Copyright (C) 1998,1999 Free Software Foundation, Inc. + * Copyright (C) 1999,2000 Robert Bihlmeyer + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, see . + * SPDX-License-Identifier: GPL-2.0+ + */ + +#ifndef _MEMORY_H +#define _MEMORY_H + +#include + +#ifdef __cplusplus +extern "C" { +#if 0 +} +#endif +#endif + + +/* values for flags, hardcoded in secmem.c */ +#define SECMEM_WARN 0 +#define SECMEM_DONT_WARN 1 +#define SECMEM_SUSPEND_WARN 2 + +void secmem_init( size_t npool ); +void secmem_term( void ); +void *secmem_malloc( size_t size ); +void *secmem_realloc( void *a, size_t newsize ); +void secmem_free( void *a ); +int m_is_secure( const void *p ); +void secmem_dump_stats(void); +void secmem_set_flags( unsigned flags ); +unsigned secmem_get_flags(void); +size_t secmem_get_max_size (void); + +#if 0 +{ +#endif +#ifdef __cplusplus +} +#endif +#endif /* _MEMORY_H */ --- a/tqt/secqstring.h 2017-12-03 08:33:12.000000000 -0800 +++ b/tqt/secqstring.h 2024-02-26 11:02:47.822134762 -0800 @@ -65,7 +65,7 @@ extern "C" { -#include "memory.h" +#include "../secmem/secmem.h" } /* We need the original qchar and qstring for transparent conversion --- a/tty/pinentry-tty.c 2021-08-11 04:16:10.000000000 -0700 +++ b/tty/pinentry-tty.c 2024-02-26 11:02:47.822134762 -0800 @@ -41,7 +41,6 @@ #include #include "pinentry.h" -#include "memory.h" #ifndef HAVE_DOSISH_SYSTEM static int timed_out; --- a/w32/main.c 2022-08-24 03:31:59.000000000 -0700 +++ b/w32/main.c 2024-02-26 11:02:47.822134762 -0800 @@ -29,7 +29,6 @@ #endif #include "pinentry.h" -#include "memory.h" #include "resource.h" /* #include "msgcodes.h" */