From eb613877bf2b0af8c43b6bf6ec97398cfe825102 Mon Sep 17 00:00:00 2001 From: "Reynaldo H. Verdejo Pinochet" Date: Fri, 18 Sep 2015 15:32:39 -0700 Subject: [PATCH] ffserver: break early on _parse_acl_row() Signed-off-by: Reynaldo H. Verdejo Pinochet --- ffserver_config.c | 50 +++++++++++++++++++++++++---------------------- 1 file changed, 27 insertions(+), 23 deletions(-) diff --git a/ffserver_config.c b/ffserver_config.c index de8a4547fb..5df871c36a 100644 --- a/ffserver_config.c +++ b/ffserver_config.c @@ -116,6 +116,8 @@ void ffserver_parse_acl_row(FFServerStream *stream, FFServerStream* feed, { char arg[1024]; FFServerIPAddressACL acl; + FFServerIPAddressACL *nacl; + FFServerIPAddressACL **naclp; int errors = 0; ffserver_get_arg(arg, sizeof(arg), &p); @@ -150,33 +152,35 @@ void ffserver_parse_acl_row(FFServerStream *stream, FFServerStream* feed, } } - if (!errors) { - FFServerIPAddressACL *nacl = av_mallocz(sizeof(*nacl)); - FFServerIPAddressACL **naclp = 0; - - acl.next = 0; - *nacl = acl; + if (errors) + return; - if (stream) - naclp = &stream->acl; - else if (feed) - naclp = &feed->acl; - else if (ext_acl) - naclp = &ext_acl; - else { - fprintf(stderr, "%s:%d: ACL found not in or \n", - filename, line_num); - errors++; - } + nacl = av_mallocz(sizeof(*nacl)); + naclp = 0; - if (naclp) { - while (*naclp) - naclp = &(*naclp)->next; + acl.next = 0; + *nacl = acl; - *naclp = nacl; - } else - av_free(nacl); + if (stream) + naclp = &stream->acl; + else if (feed) + naclp = &feed->acl; + else if (ext_acl) + naclp = &ext_acl; + else { + fprintf(stderr, "%s:%d: ACL found not in or \n", + filename, line_num); + errors++; /* FIXME: No effect whatsoever */ } + + if (naclp) { + while (*naclp) + naclp = &(*naclp)->next; + + *naclp = nacl; + } else + av_free(nacl); + } /* add a codec and set the default parameters */