2002-09-02 Marcus Brinkmann <marcus@g10code.de>
authorMarcus Brinkmann <mb@g10code.com>
Mon, 2 Sep 2002 12:17:51 +0000 (12:17 +0000)
committerMarcus Brinkmann <mb@g10code.com>
Mon, 2 Sep 2002 12:17:51 +0000 (12:17 +0000)
* posix-io.c (_gpgme_io_select): Don't use a non-constant struct initializer.
* version.c (_gpgme_get_program_version): Likewise.
Reported by Dr. Stefan Dalibor <Dr.Stefan.Dalibor@bfa.de>.

gpgme/ChangeLog
gpgme/posix-io.c
gpgme/version.c

index abca388b6d0e244daf3f02ef16f6670edf9fc250..105a713f74dcaa986c55f07a9e3dcf1f310b239d 100644 (file)
@@ -1,3 +1,9 @@
+2002-09-02  Marcus Brinkmann  <marcus@g10code.de>
+
+       * posix-io.c (_gpgme_io_select): Don't use a non-constant struct initializer.
+       * version.c (_gpgme_get_program_version): Likewise.
+       Reported by Dr. Stefan Dalibor <Dr.Stefan.Dalibor@bfa.de>.
+
 2002-09-02  Marcus Brinkmann  <marcus@g10code.de>
 
        * conversion.c (_gpgme_decode_c_string): Set DESTP before modifying DEST.
index d0fd5f8e9d6087bfe08f3c79b66d9e981d9a92e4..da7c106d80437c4d07244626b96ba0c086295591 100644 (file)
@@ -306,12 +306,14 @@ _gpgme_io_select (struct io_select_fd_s *fds, size_t nfds, int nonblock)
   fd_set readfds;
   fd_set writefds;
   int any, i, max_fd, n, count;
-  struct timeval timeout = { nonblock ? 0 : 1, 0 }; /* Use a 1s timeout.  */
+  struct timeval timeout = { 1, 0 }; /* Use a 1s timeout.  */
   void *dbg_help = NULL;
 
   FD_ZERO (&readfds);
   FD_ZERO (&writefds);
   max_fd = 0;
+  if (nonblock)
+    timeout.tv_sec = 0;
 
   DEBUG_BEGIN (dbg_help, 3, "gpgme:select on [ ");
   any = 0;
index 836a59783d3c2b1596f7d9ea0870dfc6a9fdba32..6fb05124c2e7161ef97b3dc699ad643883385754 100644 (file)
@@ -220,13 +220,14 @@ _gpgme_get_program_version (const char *const path)
   char *mark = NULL;
   int rp[2];
   int nread;
-  char *argv[] = {(char *) path, "--version", 0};
+  char *argv[] = {NULL /* path */, "--version", 0};
   struct spawn_fd_item_s pfd[] = { {0, -1}, {-1, -1} };
   struct spawn_fd_item_s cfd[] = { {-1, 1 /* STDOUT_FILENO */}, {-1, -1} };
   int status;
 
   if (!path)
     return NULL;
+  argv[0] = (char *) path;
 
   if (_gpgme_io_pipe (rp, 1) < 0)
     return NULL;