diff options
author | Chen Ganir <chen.ganir@ti.com> | 2012-05-09 12:21:15 +0300 |
---|---|---|
committer | Johan Hedberg <johan.hedberg@intel.com> | 2012-05-15 10:56:57 +0300 |
commit | ef136177b7e0719f18af64d045391f70b9cc2530 (patch) | |
tree | 172615960cf48b3018ab98e9617e323601c4628c /src/eir.c | |
parent | a705c53ef2f5dd7d93618ab194beec6d347d11d5 (diff) | |
download | bluez-ef136177b7e0719f18af64d045391f70b9cc2530.tar.gz |
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.
Diffstat (limited to 'src/eir.c')
-rw-r--r-- | src/eir.c | 8 |
1 files changed, 3 insertions, 5 deletions
@@ -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; |