From 81b92bbe69fdc548680af651a44071d948a50292 Mon Sep 17 00:00:00 2001 From: Alexander Couzens Date: Tue, 7 Jan 2020 19:05:13 +0100 Subject: [PATCH] hlr: respect the num_auth_vectors requested Previous the hlr always returned the maximum possible auth vectors (5) to the client. Even when only asked for a single auth vector. Change-Id: I20c2b648456bc7ba1fc1321a7d42852158a3523c --- src/hlr.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/hlr.c b/src/hlr.c index c3737d5c..38b9022f 100644 --- a/src/hlr.c +++ b/src/hlr.c @@ -234,6 +234,7 @@ static int rx_send_auth_info(struct osmo_gsup_conn *conn, struct osmo_gsup_message gsup_out; struct msgb *msg_out; bool separation_bit = false; + int num_auth_vectors = OSMO_GSUP_MAX_NUM_AUTH_INFO; int rc; subscr_create_on_demand(gsup->imsi); @@ -245,9 +246,13 @@ static int rx_send_auth_info(struct osmo_gsup_conn *conn, if (gsup->current_rat_type == OSMO_RAT_EUTRAN_SGS) separation_bit = true; + if (gsup->num_auth_vectors > 0 && + gsup->num_auth_vectors <= OSMO_GSUP_MAX_NUM_AUTH_INFO) + num_auth_vectors = gsup->num_auth_vectors; + rc = db_get_auc(dbc, gsup->imsi, conn->auc_3g_ind, gsup_out.auth_vectors, - ARRAY_SIZE(gsup_out.auth_vectors), + num_auth_vectors, gsup->rand, gsup->auts, separation_bit); if (rc <= 0) { gsup_out.message_type = OSMO_GSUP_MSGT_SEND_AUTH_INFO_ERROR;