Use ast_random() instead of rand() to ensure we use the best RNG available.
authorRussell Bryant <russell@russellbryant.com>
Fri, 27 Mar 2009 18:04:43 +0000 (18:04 +0000)
committerRussell Bryant <russell@russellbryant.com>
Fri, 27 Mar 2009 18:04:43 +0000 (18:04 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@184726 65c4cc65-6c06-0410-ace0-fbb531ad65f3

apps/app_minivm.c
main/manager.c

index c4bbce4..3e50580 100644 (file)
@@ -1177,7 +1177,7 @@ static int sendmail(struct minivm_template *template, struct minivm_account *vmu
        } 
        ast_debug(4, "Fromstring now: %s\n", ast_strlen_zero(passdata) ? "-default-" : passdata);
 
-       fprintf(p, "Message-ID: <Asterisk-%d-%s-%d-%s>\n", (unsigned int)rand(), vmu->username, (int)getpid(), who);
+       fprintf(p, "Message-ID: <Asterisk-%d-%s-%d-%s>\n", (unsigned int)ast_random(), vmu->username, (int)getpid(), who);
        len_passdata = strlen(vmu->fullname) * 2 + 3;
        passdata2 = alloca(len_passdata);
        if (!ast_strlen_zero(vmu->email))
@@ -1210,7 +1210,7 @@ static int sendmail(struct minivm_template *template, struct minivm_account *vmu
        fprintf(p, "MIME-Version: 1.0\n");
 
        /* Something unique. */
-       snprintf(bound, sizeof(bound), "voicemail_%s%d%d", vmu->username, (int)getpid(), (unsigned int)rand());
+       snprintf(bound, sizeof(bound), "voicemail_%s%d%d", vmu->username, (int)getpid(), (unsigned int)ast_random());
 
        fprintf(p, "Content-Type: multipart/mixed; boundary=\"%s\"\n\n\n", bound);
 
index 77362cb..b5cc844 100644 (file)
@@ -3803,7 +3803,7 @@ static struct ast_str *generic_http_callback(enum output_format format,
                 * properties of the rand() function (and the constantcy of s), that
                 * won't happen twice in a row.
                 */
-               while ((session->managerid = rand() ^ (unsigned long) session) == 0);
+               while ((session->managerid = ast_random() ^ (unsigned long) session) == 0);
                session->last_ev = grab_last();
                AST_LIST_HEAD_INIT_NOLOCK(&session->datastores);
                AST_LIST_LOCK(&sessions);