]> granicus.if.org Git - apache/commitdiff
get SSLRandomSeed exec: working by passing the proper arguments to apr_proc_create()
authorDoug MacEachern <dougm@apache.org>
Thu, 10 Jan 2002 00:09:04 +0000 (00:09 +0000)
committerDoug MacEachern <dougm@apache.org>
Thu, 10 Jan 2002 00:09:04 +0000 (00:09 +0000)
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@92789 13f79535-47bb-0310-9956-ffa450edef68

CHANGES
modules/ssl/ssl_engine_rand.c

diff --git a/CHANGES b/CHANGES
index 74e892942c51dc82df6e6ff416b7bfff187b7dea..7dc7a7613ca114c0251e14a33e932651f34d1bd3 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,6 +1,7 @@
 Changes with Apache 2.0.31-dev
 
-  *) Fix SSLPassPhraseDialog exec: [Doug MacEachern]
+  *) Fix SSLPassPhraseDialog exec: and SSLRandomSeed exec:
+     [Doug MacEachern]
 
 Changes with Apache 2.0.30
 
index 0aa74dbe3bb60c9b8161361cb4f6ca174ee79d11..0655ce1f077de228ab6bed1d0a4e6e85275f0f21 100644 (file)
@@ -102,11 +102,16 @@ int ssl_rand_seed(server_rec *s, apr_pool_t *p, ssl_rsctx_t nCtx, char *prefix)
                 apr_file_close(fp);
             }
             else if (pRandSeed->nSrc == SSL_RSSRC_EXEC) {
+                const char *cmd = pRandSeed->cpPath;
+                const char **argv = apr_palloc(p, sizeof(char *) * 3);
                 /*
                  * seed in contents generated by an external program
                  */
-                if ((fp = ssl_util_ppopen(s, p, apr_psprintf(p, "%s %d",
-                                          pRandSeed->cpPath, pRandSeed->nBytes))) == NULL)
+                argv[0] = cmd;
+                argv[1] = apr_itoa(p, pRandSeed->nBytes);
+                argv[2] = NULL;
+
+                if ((fp = ssl_util_ppopen(s, p, cmd, argv)) == NULL)
                     continue;
                 nDone += ssl_rand_feedfp(p, fp, pRandSeed->nBytes);
                 ssl_util_ppclose(s, p, fp);