From ef136177b7e0719f18af64d045391f70b9cc2530 Mon Sep 17 00:00:00 2001 From: Chen Ganir Date: Wed, 9 May 2012 12:21:15 +0300 Subject: [PATCH] eir: Keep parsed eir_data on error Do not discard already parsed eir_data on eir data length error. Data corruption may occur, but this does not mean that we need to ignore already parsed valid eir data. --- src/eir.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/eir.c b/src/eir.c index 310cd5360..9d429172c 100644 --- a/src/eir.c +++ b/src/eir.c @@ -114,11 +114,9 @@ int eir_parse(struct eir_data *eir, uint8_t *eir_data, uint8_t eir_len) len += field_len + 1; - /* Bail out if got incorrect length */ - if (len > eir_len) { - eir_data_free(eir); - return -EINVAL; - } + /* Do not continue EIR Data parsing if got incorrect length */ + if (len > eir_len) + break; data_len = field_len - 1; -- 2.47.3