ffserver: fix order of evaluation bugs
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit d40c0e4a6733ade9aaafc687bcaccc0cba1183b4)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
diff --git a/ffserver.c b/ffserver.c
index e7fdfbe..ab18d56 100644
--- a/ffserver.c
+++ b/ffserver.c
@@ -562,9 +562,11 @@
default_port = 6000;
for(stream = first_stream; stream != NULL; stream = stream->next) {
if (stream->is_multicast) {
+ unsigned random0 = av_lfg_get(&random_state);
+ unsigned random1 = av_lfg_get(&random_state);
/* open the RTP connection */
snprintf(session_id, sizeof(session_id), "%08x%08x",
- av_lfg_get(&random_state), av_lfg_get(&random_state));
+ random0, random1);
/* choose a port if none given */
if (stream->multicast_port == 0) {
@@ -3086,9 +3088,12 @@
found:
/* generate session id if needed */
- if (h->session_id[0] == '\0')
+ if (h->session_id[0] == '\0') {
+ unsigned random0 = av_lfg_get(&random_state);
+ unsigned random1 = av_lfg_get(&random_state);
snprintf(h->session_id, sizeof(h->session_id), "%08x%08x",
- av_lfg_get(&random_state), av_lfg_get(&random_state));
+ random0, random1);
+ }
/* find rtp session, and create it if none found */
rtp_c = find_rtp_session(h->session_id);