diff options
author | Andreas Steffen <andreas.steffen@strongswan.org> | 2007-02-14 00:56:58 +0000 |
---|---|---|
committer | Andreas Steffen <andreas.steffen@strongswan.org> | 2007-02-14 00:56:58 +0000 |
commit | 3a5f6dff7ad2135d7dbc546d4a45aebb746f75ea (patch) | |
tree | d542b64155014ef0f97e15a14d025164956be9e6 /src/starter | |
parent | 8245a9142ce101317851a171a744485c404fcfcd (diff) | |
download | strongswan-3a5f6dff7ad2135d7dbc546d4a45aebb746f75ea.tar.bz2 strongswan-3a5f6dff7ad2135d7dbc546d4a45aebb746f75ea.tar.xz |
fixed starter crash due to freeing default IPSEC_EAPDIR string
Diffstat (limited to 'src/starter')
-rw-r--r-- | src/starter/confread.c | 26 |
1 files changed, 20 insertions, 6 deletions
diff --git a/src/starter/confread.c b/src/starter/confread.c index 66f70e5f9..9f1453394 100644 --- a/src/starter/confread.c +++ b/src/starter/confread.c @@ -63,7 +63,6 @@ static void default_values(starter_config_t *cfg) cfg->setup.interfaces = new_list("%defaultroute"); cfg->setup.charonstart = TRUE; cfg->setup.plutostart = TRUE; - cfg->setup.eapdir = IPSEC_EAPDIR; cfg->conn_default.seen = LEMPTY; cfg->conn_default.startup = STARTUP_NO; @@ -276,12 +275,27 @@ kw_end(starter_conn_t *conn, starter_end_t *end, kw_token_t token plog("# natip and sourceip cannot be defined at the same time"); goto err; } - conn->tunnel_addr_family = ip_version(value); - ugh = ttoaddr(value, 0, conn->tunnel_addr_family, &end->srcip); - if (ugh != NULL) + if (streq(value, "%defaultroute")) { - plog("# bad addr: %s=%s [%s]", name, value, ugh); - goto err; + if (cfg->defaultroute.defined) + { + end->srcip = cfg->defaultroute.addr; + } + else + { + plog("# default route not known: %s=%s", name, value); + goto err; + } + } + else + { + conn->tunnel_addr_family = ip_version(value); + ugh = ttoaddr(value, 0, conn->tunnel_addr_family, &end->srcip); + if (ugh != NULL) + { + plog("# bad addr: %s=%s [%s]", name, value, ugh); + goto err; + } } end->has_natip = TRUE; conn->policy |= POLICY_TUNNEL; |