diff --git a/release/src-rt-6.x.4708/router/dnsmasq/VERSION b/release/src-rt-6.x.4708/router/dnsmasq/VERSION index 7db6457191..d97382beb0 100644 --- a/release/src-rt-6.x.4708/router/dnsmasq/VERSION +++ b/release/src-rt-6.x.4708/router/dnsmasq/VERSION @@ -1 +1 @@ - (tag: v2.87-f4c87b5, origin/master, origin/HEAD) + (tag: v2.87-4732aa6, origin/master, origin/HEAD) diff --git a/release/src-rt-6.x.4708/router/dnsmasq/src/dbus.c b/release/src-rt-6.x.4708/router/dnsmasq/src/dbus.c index 0c55ea5ee8..bf6b6613c0 100644 --- a/release/src-rt-6.x.4708/router/dnsmasq/src/dbus.c +++ b/release/src-rt-6.x.4708/router/dnsmasq/src/dbus.c @@ -761,8 +761,11 @@ char *dbus_init(void) dbus_error_init (&dbus_error); if (!(connection = dbus_bus_get (DBUS_BUS_SYSTEM, &dbus_error))) - return NULL; - + { + dbus_error_free(&dbus_error); + return NULL; + } + dbus_connection_set_exit_on_disconnect(connection, FALSE); dbus_connection_set_watch_functions(connection, add_watch, remove_watch, NULL, NULL, NULL); diff --git a/release/src-rt-6.x.4708/router/dnsmasq/src/option.c b/release/src-rt-6.x.4708/router/dnsmasq/src/option.c index d9dd6a321e..c354ddf47c 100644 --- a/release/src-rt-6.x.4708/router/dnsmasq/src/option.c +++ b/release/src-rt-6.x.4708/router/dnsmasq/src/option.c @@ -4974,26 +4974,20 @@ err: return 1; } -static void read_file(char *file, FILE *f, int hard_opt) +static void read_file(char *file, FILE *f, int hard_opt, int from_script) { volatile int lineno = 0; char *buff = daemon->namebuff; while (fgets(buff, MAXDNAME, f)) { - int white, i, script = 0; + int white, i; volatile int option; char *errmess, *p, *arg, *start; size_t len; - if (hard_opt == LOPT_CONF_SCRIPT) - { - hard_opt = 0; - script = 1; - } - option = (hard_opt == LOPT_REV_SERV) ? 0 : hard_opt; - + /* Memory allocation failure longjmps here if mem_recover == 1 */ if (option != 0 || hard_opt == LOPT_REV_SERV) { @@ -5001,7 +4995,7 @@ static void read_file(char *file, FILE *f, int hard_opt) continue; mem_recover = 1; } - + arg = NULL; lineno++; errmess = NULL; @@ -5107,7 +5101,7 @@ static void read_file(char *file, FILE *f, int hard_opt) if (errmess || !one_opt(option, arg, daemon->namebuff, _("error"), 0, hard_opt == LOPT_REV_SERV)) { - if (script) + if (from_script) sprintf(daemon->namebuff + strlen(daemon->namebuff), _(" in output from %s"), file); else sprintf(daemon->namebuff + strlen(daemon->namebuff), _(" at line %d of %s"), lineno, file); @@ -5153,8 +5147,14 @@ static int one_file(char *file, int hard_opt) hard_opt = 0; nofile_ok = 1; } - - if (hard_opt == 0 && strcmp(file, "-") == 0) + + if (hard_opt == LOPT_CONF_SCRIPT) + { + hard_opt = 0; + do_popen = 1; + } + + if (hard_opt == 0 && !do_popen && strcmp(file, "-") == 0) { if (read_stdin == 1) return 1; @@ -5167,12 +5167,6 @@ static int one_file(char *file, int hard_opt) /* ignore repeated files. */ struct stat statbuf; - if (hard_opt == LOPT_CONF_SCRIPT) - { - hard_opt = 0; - do_popen = 1; - } - if (hard_opt == 0 && stat(file, &statbuf) == 0) { struct fileread *r; @@ -5211,7 +5205,7 @@ static int one_file(char *file, int hard_opt) } } - read_file(file, f, do_popen ? LOPT_CONF_SCRIPT : hard_opt); + read_file(file, f, hard_opt, do_popen); if (do_popen) { @@ -5365,7 +5359,7 @@ void read_servers_file(void) } mark_servers(SERV_FROM_FILE); - read_file(daemon->servers_file, f, LOPT_REV_SERV); + read_file(daemon->servers_file, f, LOPT_REV_SERV, 0); fclose(f); cleanup_servers(); check_servers(0);