]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
hlr_auc_gw: Fix unknown-IMSI determination with SQLite
authorJouni Malinen <j@w1.fi>
Sun, 2 Sep 2012 08:24:59 +0000 (11:24 +0300)
committerJouni Malinen <j@w1.fi>
Sun, 2 Sep 2012 08:24:59 +0000 (11:24 +0300)
Need to explicitly check that the SQL query returns a match before
returning values.

Signed-hostap: Jouni Malinen <j@w1.fi>

hostapd/hlr_auc_gw.c

index e27ddaba97d7c1d42a33ece842ac8f3f3d591f1b..e04e2e9d1cdb5f8fb8d89850bb542e0f60dd00e6 100644 (file)
@@ -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;
 }