Fixed use of stack local variable outside of function scope

This commit is contained in:
Thomas Egerer
2010-03-31 16:44:31 +02:00
committed by Martin Willi
parent a47576bff7
commit 980f0eccd0
+13 -11
View File
@@ -138,14 +138,12 @@ static void init_whack_msg(whack_message_t *msg)
msg->magic = WHACK_MAGIC; msg->magic = WHACK_MAGIC;
} }
static char *connection_name(starter_conn_t *conn) static char *connection_name(starter_conn_t *conn, char *buf, size_t size)
{ {
/* if connection name is '%auto', create a new name like conn_xxxxx */ /* if connection name is '%auto', create a new name like conn_xxxxx */
static char buf[32];
if (streq(conn->name, "%auto")) if (streq(conn->name, "%auto"))
{ {
sprintf(buf, "conn_%ld", conn->id); snprintf(buf, size, "conn_%ld", conn->id);
return buf; return buf;
} }
return conn->name; return conn->name;
@@ -226,10 +224,11 @@ starter_whack_add_pubkey (starter_conn_t *conn, starter_end_t *end
{ {
const char *err; const char *err;
static char keyspace[1024 + 4]; static char keyspace[1024 + 4];
char buf[ADDRTOT_BUF]; char buf[ADDRTOT_BUF], name[32];
whack_message_t msg; whack_message_t msg;
init_whack_msg(&msg); init_whack_msg(&msg);
connection_name(conn, name, sizeof(name));
msg.whack_key = TRUE; msg.whack_key = TRUE;
msg.pubkey_alg = PUBKEY_ALG_RSA; msg.pubkey_alg = PUBKEY_ALG_RSA;
@@ -246,7 +245,7 @@ starter_whack_add_pubkey (starter_conn_t *conn, starter_end_t *end
err = atobytes(end->rsakey, 0, keyspace, sizeof(keyspace), &msg.keyval.len); err = atobytes(end->rsakey, 0, keyspace, sizeof(keyspace), &msg.keyval.len);
if (err) if (err)
{ {
plog("conn %s/%s: rsakey malformed [%s]", connection_name(conn), lr, err); plog("conn %s/%s: rsakey malformed [%s]", name, lr, err);
return 1; return 1;
} }
if (end->id) if (end->id)
@@ -266,14 +265,14 @@ starter_whack_add_pubkey (starter_conn_t *conn, starter_end_t *end
int starter_whack_add_conn(starter_conn_t *conn) int starter_whack_add_conn(starter_conn_t *conn)
{ {
char esp_buf[256]; char esp_buf[256], name[32];
whack_message_t msg; whack_message_t msg;
int r; int r;
init_whack_msg(&msg); init_whack_msg(&msg);
msg.whack_connection = TRUE; msg.whack_connection = TRUE;
msg.name = connection_name(conn); msg.name = connection_name(conn, name, sizeof(name));
msg.ikev1 = conn->keyexchange != KEY_EXCHANGE_IKEV2; msg.ikev1 = conn->keyexchange != KEY_EXCHANGE_IKEV2;
msg.addr_family = conn->addr_family; msg.addr_family = conn->addr_family;
@@ -330,32 +329,35 @@ int starter_whack_add_conn(starter_conn_t *conn)
int starter_whack_del_conn(starter_conn_t *conn) int starter_whack_del_conn(starter_conn_t *conn)
{ {
char name[32];
whack_message_t msg; whack_message_t msg;
init_whack_msg(&msg); init_whack_msg(&msg);
msg.whack_delete = TRUE; msg.whack_delete = TRUE;
msg.name = connection_name(conn); msg.name = connection_name(conn, name, sizeof(name));
return send_whack_msg(&msg); return send_whack_msg(&msg);
} }
int starter_whack_route_conn(starter_conn_t *conn) int starter_whack_route_conn(starter_conn_t *conn)
{ {
char name[32];
whack_message_t msg; whack_message_t msg;
init_whack_msg(&msg); init_whack_msg(&msg);
msg.whack_route = TRUE; msg.whack_route = TRUE;
msg.name = connection_name(conn); msg.name = connection_name(conn, name, sizeof(name));
return send_whack_msg(&msg); return send_whack_msg(&msg);
} }
int starter_whack_initiate_conn(starter_conn_t *conn) int starter_whack_initiate_conn(starter_conn_t *conn)
{ {
char name[32];
whack_message_t msg; whack_message_t msg;
init_whack_msg(&msg); init_whack_msg(&msg);
msg.whack_initiate = TRUE; msg.whack_initiate = TRUE;
msg.whack_async = TRUE; msg.whack_async = TRUE;
msg.name = connection_name(conn); msg.name = connection_name(conn, name, sizeof(name));
return send_whack_msg(&msg); return send_whack_msg(&msg);
} }