From: Jouni Malinen Date: Sun, 2 Sep 2012 08:24:59 +0000 (+0300) Subject: hlr_auc_gw: Fix unknown-IMSI determination with SQLite X-Git-Tag: hostap_2_0~270 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4309ca51b45619e194d618ac7cb43809c057b564;p=thirdparty%2Fhostap.git hlr_auc_gw: Fix unknown-IMSI determination with SQLite Need to explicitly check that the SQL query returns a match before returning values. Signed-hostap: Jouni Malinen --- diff --git a/hostapd/hlr_auc_gw.c b/hostapd/hlr_auc_gw.c index e27ddaba9..e04e2e9d1 100644 --- a/hostapd/hlr_auc_gw.c +++ b/hostapd/hlr_auc_gw.c @@ -78,6 +78,7 @@ struct milenage_parameters { u8 opc[16]; u8 amf[2]; u8 sqn[6]; + int set; }; static struct milenage_parameters *milenage_db = NULL; @@ -155,6 +156,8 @@ static int get_milenage_cb(void *ctx, int argc, char *argv[], char *col[]) struct milenage_parameters *m = ctx; int i; + m->set = 1; + for (i = 0; i < argc; i++) { if (os_strcmp(col[i], "ki") == 0 && argv[i] && hexstr2bin(argv[i], m->ki, sizeof(m->ki))) { @@ -201,6 +204,8 @@ static struct milenage_parameters * db_get_milenage(const char *imsi_txt) NULL) != SQLITE_OK) return NULL; + if (!db_tmp_milenage.set) + return NULL; return &db_tmp_milenage; }