[svn] GnuPG - r4795 - in trunk: common g10
svn author marcus
cvs at cvs.gnupg.org
Wed Jun 25 19:44:29 CEST 2008
Author: marcus
Date: 2008-06-25 19:44:26 +0200 (Wed, 25 Jun 2008)
New Revision: 4795
Modified:
trunk/common/ChangeLog
trunk/common/iobuf.c
trunk/common/sysutils.c
trunk/common/sysutils.h
trunk/g10/ChangeLog
trunk/g10/gpg.c
Log:
g10/
2008-06-25 Marcus Brinkmann <marcus at g10code.de>
* gpg.c (enum cmd_and_opt_values): Remove option
oEnableW32HandleTranslation.
(opts): Remove option --enable-w32-handle-translation.
(main): Remove variable w32_handle_translation.
common/
2008-06-25 Marcus Brinkmann <marcus at g10code.de>
Revert last three changes related to handle translation.
* sysutils.c:
(FD_TRANSLATE_MAX, fd_translate, fd_translate_len)
(translate_table_init, translate_table_lookup): Removed.
* iobuf.c (check_special_filename): Do not use
translate_table_lookup.
* sysutils.h (translate_table_init, translate_table_lookup):
Remove prototypes.
Modified: trunk/common/ChangeLog
===================================================================
--- trunk/common/ChangeLog 2008-06-25 11:14:48 UTC (rev 4794)
+++ trunk/common/ChangeLog 2008-06-25 17:44:26 UTC (rev 4795)
@@ -1,3 +1,14 @@
+2008-06-25 Marcus Brinkmann <marcus at g10code.de>
+
+ Revert last three changes related to handle translation.
+ * sysutils.c:
+ (FD_TRANSLATE_MAX, fd_translate, fd_translate_len)
+ (translate_table_init, translate_table_lookup): Removed.
+ * iobuf.c (check_special_filename): Do not use
+ translate_table_lookup.
+ * sysutils.h (translate_table_init, translate_table_lookup):
+ Remove prototypes.
+
2008-06-19 Werner Koch <wk at g10code.com>
* sysutils.c: Remove <ctype.h>.
Modified: trunk/g10/ChangeLog
===================================================================
--- trunk/g10/ChangeLog 2008-06-25 11:14:48 UTC (rev 4794)
+++ trunk/g10/ChangeLog 2008-06-25 17:44:26 UTC (rev 4795)
@@ -1,3 +1,10 @@
+2008-06-25 Marcus Brinkmann <marcus at g10code.de>
+
+ * gpg.c (enum cmd_and_opt_values): Remove option
+ oEnableW32HandleTranslation.
+ (opts): Remove option --enable-w32-handle-translation.
+ (main): Remove variable w32_handle_translation.
+
2008-06-19 Werner Koch <wk at g10code.com>
* gpg.c (gpgconf_list): Add "group".
Modified: trunk/common/iobuf.c
===================================================================
--- trunk/common/iobuf.c 2008-06-25 11:14:48 UTC (rev 4794)
+++ trunk/common/iobuf.c 2008-06-25 17:44:26 UTC (rev 4795)
@@ -1177,7 +1177,7 @@
for (i = 0; digitp (fname+i); i++)
;
if (!fname[i])
- return translate_table_lookup (atoi (fname));
+ return atoi (fname);
}
return -1;
}
Modified: trunk/common/sysutils.c
===================================================================
--- trunk/common/sysutils.c 2008-06-25 11:14:48 UTC (rev 4794)
+++ trunk/common/sysutils.c 2008-06-25 17:44:26 UTC (rev 4795)
@@ -278,127 +278,6 @@
}
-
-/* Handle translation. On W32, we provide handle values on the
- command line directly and using special file names such as
- "-&HANDLE". However, in GPGME we can not directly inherit the
- handles as this may interfere with other components in a
- multithreaded application. Thus, we inject the handles after
- creating the GPG process. The problem is that the handle numbers
- change at injection, but it is too late to change the command line.
- Hence this hack, which allows us to translate the handle values
- in the command line to their new values after injection.
-
- Handles that must be translated are those occuring in special file
- names (see iobuf.c::check_special_filename) as well as those given
- directly to options (see translate_sys2libc_fd_int). */
-
-/* For W32, we may have to translate handle values given on the
- command line. */
-#define FD_TRANSLATE_MAX 8
-static struct
-{
- int from;
- int to;
-} fd_translate[FD_TRANSLATE_MAX];
-
-/* Number of entries used in fd_translate. */
-static int fd_translate_len;
-
-
-/* Initialize the fd translation table. This reads one line from
- stdin which is expected to be in the format "FROM TO [...]" where
- each "FROM TO" pair are two handle numbers. Handle number FROM on
- the command line is translated to handle number TO.
-
- Note that this function may be called while still being setuid. */
-void
-translate_table_init (void)
-{
- /* Hold roughly 8 pairs of 64 bit numbers in hex notation:
- "0xFEDCBA9876543210 0xFEDCBA9876543210". 8*19*2 - 1 = 303. This
- plans ahead for a time where a HANDLE is 64 bit. */
-#define TRANS_MAX 350
- char line[TRANS_MAX + 1];
- char *linep;
- int idx;
- int res;
- int newl = 0;
-
- /* We always read one line from stdin. */
- for (idx = 0; idx < TRANS_MAX; idx++)
- {
- do
- res = read (0, &line[idx], 1);
- while (res == -1 && errno == EINTR);
- if (res != 1)
- break;
- if (line[idx] == '\n')
- {
- newl = 1;
- break;
- }
- }
- if (!newl)
- {
- char buf[1];
- do
- {
- do
- res = read (0, buf, 1);
- while (res == -1 && errno == EINTR);
- }
- while (res == 1 && *buf != '\n');
- }
-
- line[idx] = '\0';
- linep = line;
-
- /* Now start to read mapping pairs. */
- for (idx = 0; idx < FD_TRANSLATE_MAX; idx++)
- {
- unsigned long from;
- unsigned long to;
- char *tail;
-
- while (spacep (linep))
- linep++;
- if (*linep == '\0')
- break;
- from = strtoul (linep, &tail, 0);
- if (tail == NULL || ! (*tail == '\0' || spacep (tail)))
- break;
- linep = tail;
-
- while (spacep (linep))
- linep++;
- if (*linep == '\0')
- break;
- to = strtoul (linep, &tail, 0);
- if (tail == NULL || ! (*tail == '\0' || spacep (tail)))
- break;
- linep = tail;
-
- fd_translate[idx].from = from;
- fd_translate[idx].to = to;
- fd_translate_len++;
- }
-}
-
-
-/* Translate a handle number. */
-int
-translate_table_lookup (int fd)
-{
- int idx;
-
- for (idx = 0; idx < fd_translate_len; idx++)
- if (fd_translate[idx].from == fd)
- return fd_translate[idx].to;
- return fd;
-}
-
-
/* This function is a NOP for POSIX systems but required under Windows
as the file handles as returned by OS calls (like CreateFile) are
different from the libc file descriptors (like open). This function
@@ -424,7 +303,6 @@
#endif
}
-
/* This is the same as translate_sys2libc_fd but takes an integer
which is assumed to be such an system handle. */
int
@@ -434,14 +312,8 @@
if (fd <= 2)
return fd; /* Do not do this for error, stdin, stdout, stderr. */
- /* Note: If this function is ever used in a different context than
- option parsing in the main function, a variant that does not do
- translation probable needs to be used. */
- fd = translate_table_lookup (fd);
-
return translate_sys2libc_fd ((void*)fd, for_write);
#else
- fd = translate_table_lookup (fd);
return fd;
#endif
}
Modified: trunk/common/sysutils.h
===================================================================
--- trunk/common/sysutils.h 2008-06-25 11:14:48 UTC (rev 4794)
+++ trunk/common/sysutils.h 2008-06-25 17:44:26 UTC (rev 4795)
@@ -43,16 +43,6 @@
const unsigned char *get_session_marker (size_t *rlen);
/*int check_permissions (const char *path,int extension,int checkonly);*/
void gnupg_sleep (unsigned int seconds);
-
-/* Initialize the fd translation table. This reads one line from
- stdin which is expected to be in the format "FROM TO [...]" where
- each "FROM TO" pair are two handle numbers. Handle number FROM on
- the command line is translated to handle number TO. */
-void translate_table_init (void);
-
-/* Translate a handle number. */
-int translate_table_lookup (int fd);
-
int translate_sys2libc_fd (gnupg_fd_t fd, int for_write);
int translate_sys2libc_fd_int (int fd, int for_write);
FILE *gnupg_tmpfile (void);
Modified: trunk/g10/gpg.c
===================================================================
--- trunk/g10/gpg.c 2008-06-25 11:14:48 UTC (rev 4794)
+++ trunk/g10/gpg.c 2008-06-25 17:44:26 UTC (rev 4795)
@@ -300,7 +300,6 @@
oNoAllowFreeformUID,
oAllowSecretKeyImport,
oEnableSpecialFilenames,
- oEnableW32HandleTranslation,
oNoLiteral,
oSetFilesize,
oHonorHttpProxy,
@@ -665,7 +664,6 @@
{ oAllowSecretKeyImport, "allow-secret-key-import", 0, "@" },
{ oTryAllSecrets, "try-all-secrets", 0, "@" },
{ oEnableSpecialFilenames, "enable-special-filenames", 0, "@" },
- { oEnableW32HandleTranslation, "enable-w32-handle-translation", 0, "@" },
{ oNoExpensiveTrustChecks, "no-expensive-trust-checks", 0, "@" },
{ aDeleteSecretAndPublicKeys, "delete-secret-and-public-keys",256, "@" },
{ aRebuildKeydbCaches, "rebuild-keydb-caches", 256, "@"},
@@ -1878,7 +1876,6 @@
int eyes_only=0;
int multifile=0;
int pwfd = -1;
- int w32_handle_translation = 0;
int with_fpr = 0; /* make an option out of --fingerprint */
int any_explicit_recipient = 0;
int require_secmem=0,got_secmem=0;
@@ -1994,15 +1991,6 @@
{
/* Not used */
}
- else if (pargs.r_opt == oEnableW32HandleTranslation )
- {
- /* We must initialize handle translation before parsing
- the options. */
- if (! w32_handle_translation)
- translate_table_init ();
- w32_handle_translation = 1;
- break;
- }
}
#ifdef HAVE_DOSISH_SYSTEM
@@ -2781,7 +2769,6 @@
case oEnableSpecialFilenames:
iobuf_enable_special_filenames (1);
break;
- case oEnableW32HandleTranslation: break;
case oNoExpensiveTrustChecks: opt.no_expensive_trust_checks=1; break;
case oAutoCheckTrustDB: opt.no_auto_check_trustdb=0; break;
case oNoAutoCheckTrustDB: opt.no_auto_check_trustdb=1; break;
@@ -3346,7 +3333,6 @@
if( pwfd != -1 ) /* Read the passphrase now. */
read_passphrase_from_fd( pwfd );
-
fname = argc? *argv : NULL;
if(fname && utf8_strings)
More information about the Gnupg-commits
mailing list