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 <j@w1.fi>
This commit is contained in:
parent
f585c6a6d6
commit
4309ca51b4
1 changed files with 5 additions and 0 deletions
|
@ -78,6 +78,7 @@ struct milenage_parameters {
|
||||||
u8 opc[16];
|
u8 opc[16];
|
||||||
u8 amf[2];
|
u8 amf[2];
|
||||||
u8 sqn[6];
|
u8 sqn[6];
|
||||||
|
int set;
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct milenage_parameters *milenage_db = NULL;
|
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;
|
struct milenage_parameters *m = ctx;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
|
m->set = 1;
|
||||||
|
|
||||||
for (i = 0; i < argc; i++) {
|
for (i = 0; i < argc; i++) {
|
||||||
if (os_strcmp(col[i], "ki") == 0 && argv[i] &&
|
if (os_strcmp(col[i], "ki") == 0 && argv[i] &&
|
||||||
hexstr2bin(argv[i], m->ki, sizeof(m->ki))) {
|
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)
|
NULL) != SQLITE_OK)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
|
if (!db_tmp_milenage.set)
|
||||||
|
return NULL;
|
||||||
return &db_tmp_milenage;
|
return &db_tmp_milenage;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue