From 5ffa5afe3088ced2945748e85cd546e2c557aaae Mon Sep 17 00:00:00 2001 From: richard_kuo Date: Thu, 3 Sep 2026 14:34:32 +0800 Subject: [PATCH] onlp/sysi: Make the ONIE IDPROM buffer pass strict_string_checks onlp_sysi_onie_data_get() allocated exactly 256 bytes and filled every one of them with raw IDPROM content, so the buffer handed to is_valid_tlvinfo_header__() is not guaranteed to be NUL-terminated. strcmp() requires a terminated string, so AddressSanitizer with strict_string_checks=1 reports a heap-buffer-overflow on that call whenever the device carries no zero byte at all - an erased or corrupted IDPROM. Allocating one extra zero byte makes the same run come back clean. Real hardware is not affected: on a programmed IDPROM totallen sits at offsets 9-10, so data[9] is 0x00 for any payload below 256 bytes, and the comparison resolves at index 7 or earlier. The change is about satisfying the strcmp contract under strict checking, not about a failure observed in the field. The read length is deliberately left at 256, so the decoded content and the *size == len guard behave exactly as before. - introduce a local const int len instead of repeating the literal 256 - derive the i2c word-read loop bound from len (len / 2) on as7716-24xc, as7716-32x and as7816-64x, and the byte-read bound on as9516-32d - covers 38 platforms; no behavioural change on any of them --- .../module/src/sysi.c | 7 ++++--- .../module/src/sysi.c | 7 ++++--- .../module/src/sysi.c | 7 ++++--- .../module/src/sysi.c | 11 ++++++----- .../module/src/sysi.c | 7 ++++--- .../module/src/sysi.c | 7 ++++--- .../module/src/sysi.c | 11 ++++++----- .../module/src/sysi.c | 7 ++++--- .../module/src/sysi.c | 7 ++++--- .../module/src/sysi.c | 7 ++++--- .../module/src/sysi.c | 7 ++++--- .../module/src/sysi.c | 7 ++++--- .../module/src/sysi.c | 7 ++++--- .../module/src/sysi.c | 7 ++++--- .../module/src/sysi.c | 7 ++++--- .../module/src/sysi.c | 7 ++++--- .../module/src/sysi.c | 2 +- .../module/src/sysi.c | 7 ++++--- .../module/src/sysi.c | 7 ++++--- .../module/src/sysi.c | 11 ++++++----- .../module/src/sysi.c | 7 ++++--- .../module/src/sysi.c | 7 ++++--- .../module/src/sysi.c | 7 ++++--- .../module/src/sysi.c | 7 ++++--- .../module/src/sysi.c | 7 ++++--- .../module/src/sysi.c | 7 ++++--- .../module/src/sysi.c | 7 ++++--- .../module/src/sysi.c | 7 ++++--- .../module/src/sysi.c | 7 ++++--- .../module/src/sysi.c | 7 ++++--- .../module/src/sysi.c | 19 ++++++++++--------- .../module/src/sysi.c | 7 ++++--- .../module/src/sysi.c | 7 ++++--- .../module/src/sysi.c | 7 ++++--- .../module/src/sysi.c | 7 ++++--- .../x86_64_accton_as9817_64/module/src/sysi.c | 7 ++++--- .../module/src/sysi.c | 7 ++++--- .../module/src/sysi.c | 7 ++++--- 38 files changed, 161 insertions(+), 124 deletions(-) diff --git a/packages/platforms/accton/x86-64/as4222-28pe/onlp/builds/x86_64_accton_as4222_28pe/module/src/sysi.c b/packages/platforms/accton/x86-64/as4222-28pe/onlp/builds/x86_64_accton_as4222_28pe/module/src/sysi.c index c7587a4c5..229620aa5 100755 --- a/packages/platforms/accton/x86-64/as4222-28pe/onlp/builds/x86_64_accton_as4222_28pe/module/src/sysi.c +++ b/packages/platforms/accton/x86-64/as4222-28pe/onlp/builds/x86_64_accton_as4222_28pe/module/src/sysi.c @@ -61,10 +61,11 @@ onlp_sysi_platform_get(void) int onlp_sysi_onie_data_get(uint8_t** data, int* size) { - uint8_t* rdata = aim_zmalloc(256); + const int len = 256; + uint8_t* rdata = aim_zmalloc(len + 1); - if(onlp_file_read(rdata, 256, size, IDPROM_PATH) == ONLP_STATUS_OK) { - if(*size == 256) { + if(onlp_file_read(rdata, len, size, IDPROM_PATH) == ONLP_STATUS_OK) { + if(*size == len) { *data = rdata; return ONLP_STATUS_OK; } diff --git a/packages/platforms/accton/x86-64/as4625-54t/onlp/builds/x86_64_accton_as4625_54t/module/src/sysi.c b/packages/platforms/accton/x86-64/as4625-54t/onlp/builds/x86_64_accton_as4625_54t/module/src/sysi.c index 79ffdf855..7c4c8f501 100644 --- a/packages/platforms/accton/x86-64/as4625-54t/onlp/builds/x86_64_accton_as4625_54t/module/src/sysi.c +++ b/packages/platforms/accton/x86-64/as4625-54t/onlp/builds/x86_64_accton_as4625_54t/module/src/sysi.c @@ -63,10 +63,11 @@ onlp_sysi_platform_get(void) int onlp_sysi_onie_data_get(uint8_t** data, int* size) { - uint8_t* rdata = aim_zmalloc(256); + const int len = 256; + uint8_t* rdata = aim_zmalloc(len + 1); - if(onlp_file_read(rdata, 256, size, IDPROM_PATH) == ONLP_STATUS_OK) { - if(*size == 256) { + if(onlp_file_read(rdata, len, size, IDPROM_PATH) == ONLP_STATUS_OK) { + if(*size == len) { *data = rdata; return ONLP_STATUS_OK; } diff --git a/packages/platforms/accton/x86-64/as4630-54pe/onlp/builds/x86_64_accton_as4630_54pe/module/src/sysi.c b/packages/platforms/accton/x86-64/as4630-54pe/onlp/builds/x86_64_accton_as4630_54pe/module/src/sysi.c index 518fb4e06..712444094 100644 --- a/packages/platforms/accton/x86-64/as4630-54pe/onlp/builds/x86_64_accton_as4630_54pe/module/src/sysi.c +++ b/packages/platforms/accton/x86-64/as4630-54pe/onlp/builds/x86_64_accton_as4630_54pe/module/src/sysi.c @@ -59,7 +59,8 @@ onlp_sysi_platform_get(void) int onlp_sysi_onie_data_get(uint8_t** data, int* size) { - uint8_t* rdata = aim_zmalloc(256); + const int len = 256; + uint8_t* rdata = aim_zmalloc(len + 1); int bus_offset = 0; char path[64]; @@ -69,8 +70,8 @@ onlp_sysi_onie_data_get(uint8_t** data, int* size) snprintf(path, sizeof(path), IDPROM_PATH, 1+bus_offset); - if(onlp_file_read(rdata, 256, size, path) == ONLP_STATUS_OK) { - if(*size == 256) { + if(onlp_file_read(rdata, len, size, path) == ONLP_STATUS_OK) { + if(*size == len) { *data = rdata; return ONLP_STATUS_OK; } diff --git a/packages/platforms/accton/x86-64/as4630-54te/onlp/builds/x86_64_accton_as4630_54pe/module/src/sysi.c b/packages/platforms/accton/x86-64/as4630-54te/onlp/builds/x86_64_accton_as4630_54pe/module/src/sysi.c index 77d5d7c7d..98bce09ae 100644 --- a/packages/platforms/accton/x86-64/as4630-54te/onlp/builds/x86_64_accton_as4630_54pe/module/src/sysi.c +++ b/packages/platforms/accton/x86-64/as4630-54te/onlp/builds/x86_64_accton_as4630_54pe/module/src/sysi.c @@ -55,15 +55,16 @@ onlp_sysi_platform_get(void) int onlp_sysi_onie_data_get(uint8_t** data, int* size) { - uint8_t* rdata = aim_zmalloc(256); + const int len = 256; + uint8_t* rdata = aim_zmalloc(len + 1); - if(onlp_file_read(rdata, 256, size, IDPROM_PATH_1) == ONLP_STATUS_OK) { - if(*size == 256) { + if(onlp_file_read(rdata, len, size, IDPROM_PATH_1) == ONLP_STATUS_OK) { + if(*size == len) { *data = rdata; return ONLP_STATUS_OK; } - } else if(onlp_file_read(rdata, 256, size, IDPROM_PATH_2) == ONLP_STATUS_OK) { - if(*size == 256) { + } else if(onlp_file_read(rdata, len, size, IDPROM_PATH_2) == ONLP_STATUS_OK) { + if(*size == len) { *data = rdata; return ONLP_STATUS_OK; } diff --git a/packages/platforms/accton/x86-64/as5822-54x/onlp/builds/x86_64_accton_as5822_54x/module/src/sysi.c b/packages/platforms/accton/x86-64/as5822-54x/onlp/builds/x86_64_accton_as5822_54x/module/src/sysi.c index d319105d5..5753d5890 100644 --- a/packages/platforms/accton/x86-64/as5822-54x/onlp/builds/x86_64_accton_as5822_54x/module/src/sysi.c +++ b/packages/platforms/accton/x86-64/as5822-54x/onlp/builds/x86_64_accton_as5822_54x/module/src/sysi.c @@ -56,9 +56,10 @@ onlp_sysi_platform_get(void) int onlp_sysi_onie_data_get(uint8_t** data, int* size) { - uint8_t* rdata = aim_zmalloc(256); - if(onlp_file_read(rdata, 256, size, IDPROM_PATH) == ONLP_STATUS_OK) { - if(*size == 256) { + const int len = 256; + uint8_t* rdata = aim_zmalloc(len + 1); + if(onlp_file_read(rdata, len, size, IDPROM_PATH) == ONLP_STATUS_OK) { + if(*size == len) { *data = rdata; return ONLP_STATUS_OK; } diff --git a/packages/platforms/accton/x86-64/as5835-54t/onlp/builds/x86_64_accton_as5835_54t/module/src/sysi.c b/packages/platforms/accton/x86-64/as5835-54t/onlp/builds/x86_64_accton_as5835_54t/module/src/sysi.c index e297c3453..14b57a53f 100644 --- a/packages/platforms/accton/x86-64/as5835-54t/onlp/builds/x86_64_accton_as5835_54t/module/src/sysi.c +++ b/packages/platforms/accton/x86-64/as5835-54t/onlp/builds/x86_64_accton_as5835_54t/module/src/sysi.c @@ -57,9 +57,10 @@ onlp_sysi_platform_get(void) int onlp_sysi_onie_data_get(uint8_t** data, int* size) { - uint8_t* rdata = aim_zmalloc(256); - if(onlp_file_read(rdata, 256, size, IDPROM_PATH) == ONLP_STATUS_OK) { - if(*size == 256) { + const int len = 256; + uint8_t* rdata = aim_zmalloc(len + 1); + if(onlp_file_read(rdata, len, size, IDPROM_PATH) == ONLP_STATUS_OK) { + if(*size == len) { *data = rdata; return ONLP_STATUS_OK; } diff --git a/packages/platforms/accton/x86-64/as5835-54x/onlp/builds/x86_64_accton_as5835_54x/module/src/sysi.c b/packages/platforms/accton/x86-64/as5835-54x/onlp/builds/x86_64_accton_as5835_54x/module/src/sysi.c index ce7eb4627..0d733bc2e 100644 --- a/packages/platforms/accton/x86-64/as5835-54x/onlp/builds/x86_64_accton_as5835_54x/module/src/sysi.c +++ b/packages/platforms/accton/x86-64/as5835-54x/onlp/builds/x86_64_accton_as5835_54x/module/src/sysi.c @@ -57,14 +57,15 @@ onlp_sysi_platform_get(void) int onlp_sysi_onie_data_get(uint8_t** data, int* size) { - uint8_t* rdata = aim_zmalloc(256); - if (onlp_file_read(rdata, 256, size, IDPROM_PATH_1) == ONLP_STATUS_OK) { - if(*size == 256) { + const int len = 256; + uint8_t* rdata = aim_zmalloc(len + 1); + if (onlp_file_read(rdata, len, size, IDPROM_PATH_1) == ONLP_STATUS_OK) { + if(*size == len) { *data = rdata; return ONLP_STATUS_OK; } - } else if (onlp_file_read(rdata, 256, size, IDPROM_PATH_2) == ONLP_STATUS_OK) { - if(*size == 256) { + } else if (onlp_file_read(rdata, len, size, IDPROM_PATH_2) == ONLP_STATUS_OK) { + if(*size == len) { *data = rdata; return ONLP_STATUS_OK; } diff --git a/packages/platforms/accton/x86-64/as5912-54xk/onlp/builds/x86_64_accton_as5912_54xk/module/src/sysi.c b/packages/platforms/accton/x86-64/as5912-54xk/onlp/builds/x86_64_accton_as5912_54xk/module/src/sysi.c index 7aa737e0e..925649699 100644 --- a/packages/platforms/accton/x86-64/as5912-54xk/onlp/builds/x86_64_accton_as5912_54xk/module/src/sysi.c +++ b/packages/platforms/accton/x86-64/as5912-54xk/onlp/builds/x86_64_accton_as5912_54xk/module/src/sysi.c @@ -55,9 +55,10 @@ onlp_sysi_platform_get(void) int onlp_sysi_onie_data_get(uint8_t** data, int* size) { - uint8_t* rdata = aim_zmalloc(256); - if(onlp_file_read(rdata, 256, size, IDPROM_PATH) == ONLP_STATUS_OK) { - if(*size == 256) { + const int len = 256; + uint8_t* rdata = aim_zmalloc(len + 1); + if(onlp_file_read(rdata, len, size, IDPROM_PATH) == ONLP_STATUS_OK) { + if(*size == len) { *data = rdata; return ONLP_STATUS_OK; } diff --git a/packages/platforms/accton/x86-64/as5915-18x/onlp/builds/x86_64_accton_as5915_18x/module/src/sysi.c b/packages/platforms/accton/x86-64/as5915-18x/onlp/builds/x86_64_accton_as5915_18x/module/src/sysi.c index 2b41998e1..7247ff9f2 100644 --- a/packages/platforms/accton/x86-64/as5915-18x/onlp/builds/x86_64_accton_as5915_18x/module/src/sysi.c +++ b/packages/platforms/accton/x86-64/as5915-18x/onlp/builds/x86_64_accton_as5915_18x/module/src/sysi.c @@ -55,9 +55,10 @@ onlp_sysi_platform_get(void) int onlp_sysi_onie_data_get(uint8_t** data, int* size) { - uint8_t* rdata = aim_zmalloc(256); - if(onlp_file_read(rdata, 256, size, IDPROM_PATH) == ONLP_STATUS_OK) { - if(*size == 256) { + const int len = 256; + uint8_t* rdata = aim_zmalloc(len + 1); + if(onlp_file_read(rdata, len, size, IDPROM_PATH) == ONLP_STATUS_OK) { + if(*size == len) { *data = rdata; return ONLP_STATUS_OK; } diff --git a/packages/platforms/accton/x86-64/as5916-26xb/onlp/builds/x86_64_accton_as5916_26xb/module/src/sysi.c b/packages/platforms/accton/x86-64/as5916-26xb/onlp/builds/x86_64_accton_as5916_26xb/module/src/sysi.c index d8c9f10d6..cdbd6527e 100644 --- a/packages/platforms/accton/x86-64/as5916-26xb/onlp/builds/x86_64_accton_as5916_26xb/module/src/sysi.c +++ b/packages/platforms/accton/x86-64/as5916-26xb/onlp/builds/x86_64_accton_as5916_26xb/module/src/sysi.c @@ -46,9 +46,10 @@ onlp_sysi_platform_get(void) int onlp_sysi_onie_data_get(uint8_t** data, int* size) { - uint8_t* rdata = aim_zmalloc(256); - if(onlp_file_read(rdata, 256, size, IDPROM_PATH) == ONLP_STATUS_OK) { - if(*size == 256) { + const int len = 256; + uint8_t* rdata = aim_zmalloc(len + 1); + if(onlp_file_read(rdata, len, size, IDPROM_PATH) == ONLP_STATUS_OK) { + if(*size == len) { *data = rdata; return ONLP_STATUS_OK; } diff --git a/packages/platforms/accton/x86-64/as5916-54x/onlp/builds/x86_64_accton_as5916_54x/module/src/sysi.c b/packages/platforms/accton/x86-64/as5916-54x/onlp/builds/x86_64_accton_as5916_54x/module/src/sysi.c index 44bf47a11..d53a67914 100644 --- a/packages/platforms/accton/x86-64/as5916-54x/onlp/builds/x86_64_accton_as5916_54x/module/src/sysi.c +++ b/packages/platforms/accton/x86-64/as5916-54x/onlp/builds/x86_64_accton_as5916_54x/module/src/sysi.c @@ -55,9 +55,10 @@ onlp_sysi_platform_get(void) int onlp_sysi_onie_data_get(uint8_t** data, int* size) { - uint8_t* rdata = aim_zmalloc(256); - if(onlp_file_read(rdata, 256, size, IDPROM_PATH) == ONLP_STATUS_OK) { - if(*size == 256) { + const int len = 256; + uint8_t* rdata = aim_zmalloc(len + 1); + if(onlp_file_read(rdata, len, size, IDPROM_PATH) == ONLP_STATUS_OK) { + if(*size == len) { *data = rdata; return ONLP_STATUS_OK; } diff --git a/packages/platforms/accton/x86-64/as5916-54xk/onlp/builds/x86_64_accton_as5916_54xk/module/src/sysi.c b/packages/platforms/accton/x86-64/as5916-54xk/onlp/builds/x86_64_accton_as5916_54xk/module/src/sysi.c index ec29e666d..ca07192ec 100644 --- a/packages/platforms/accton/x86-64/as5916-54xk/onlp/builds/x86_64_accton_as5916_54xk/module/src/sysi.c +++ b/packages/platforms/accton/x86-64/as5916-54xk/onlp/builds/x86_64_accton_as5916_54xk/module/src/sysi.c @@ -55,7 +55,8 @@ onlp_sysi_platform_get(void) int onlp_sysi_onie_data_get(uint8_t** data, int* size) { - uint8_t* rdata = aim_zmalloc(256); + const int len = 256; + uint8_t* rdata = aim_zmalloc(len + 1); char* idprom_path = NULL; int ret = ONLP_STATUS_OK; @@ -66,8 +67,8 @@ onlp_sysi_onie_data_get(uint8_t** data, int* size) idprom_path = (ONLP_STATUS_OK == ret) ? IDPROM_PATH_1 : IDPROM_PATH_2; - if(onlp_file_read(rdata, 256, size, idprom_path) == ONLP_STATUS_OK) { - if(*size == 256) { + if(onlp_file_read(rdata, len, size, idprom_path) == ONLP_STATUS_OK) { + if(*size == len) { *data = rdata; return ONLP_STATUS_OK; } diff --git a/packages/platforms/accton/x86-64/as5916-54xks/onlp/builds/x86_64_accton_as5916_54xks/module/src/sysi.c b/packages/platforms/accton/x86-64/as5916-54xks/onlp/builds/x86_64_accton_as5916_54xks/module/src/sysi.c index 86e8f7fa5..d05824d57 100755 --- a/packages/platforms/accton/x86-64/as5916-54xks/onlp/builds/x86_64_accton_as5916_54xks/module/src/sysi.c +++ b/packages/platforms/accton/x86-64/as5916-54xks/onlp/builds/x86_64_accton_as5916_54xks/module/src/sysi.c @@ -46,9 +46,10 @@ onlp_sysi_platform_get(void) int onlp_sysi_onie_data_get(uint8_t** data, int* size) { - uint8_t* rdata = aim_zmalloc(256); - if(onlp_file_read(rdata, 256, size, IDPROM_PATH) == ONLP_STATUS_OK) { - if(*size == 256) { + const int len = 256; + uint8_t* rdata = aim_zmalloc(len + 1); + if(onlp_file_read(rdata, len, size, IDPROM_PATH) == ONLP_STATUS_OK) { + if(*size == len) { *data = rdata; return ONLP_STATUS_OK; } diff --git a/packages/platforms/accton/x86-64/as5916-54xl/onlp/builds/x86_64_accton_as5916_54xl/module/src/sysi.c b/packages/platforms/accton/x86-64/as5916-54xl/onlp/builds/x86_64_accton_as5916_54xl/module/src/sysi.c index 1a518e963..9391dbced 100755 --- a/packages/platforms/accton/x86-64/as5916-54xl/onlp/builds/x86_64_accton_as5916_54xl/module/src/sysi.c +++ b/packages/platforms/accton/x86-64/as5916-54xl/onlp/builds/x86_64_accton_as5916_54xl/module/src/sysi.c @@ -46,9 +46,10 @@ onlp_sysi_platform_get(void) int onlp_sysi_onie_data_get(uint8_t** data, int* size) { - uint8_t* rdata = aim_zmalloc(256); - if(onlp_file_read(rdata, 256, size, IDPROM_PATH) == ONLP_STATUS_OK) { - if(*size == 256) { + const int len = 256; + uint8_t* rdata = aim_zmalloc(len + 1); + if(onlp_file_read(rdata, len, size, IDPROM_PATH) == ONLP_STATUS_OK) { + if(*size == len) { *data = rdata; return ONLP_STATUS_OK; } diff --git a/packages/platforms/accton/x86-64/as7315-27xb/onlp/builds/x86_64_accton_as7315_27xb/module/src/sysi.c b/packages/platforms/accton/x86-64/as7315-27xb/onlp/builds/x86_64_accton_as7315_27xb/module/src/sysi.c index 1eafed0c5..a325d498a 100644 --- a/packages/platforms/accton/x86-64/as7315-27xb/onlp/builds/x86_64_accton_as7315_27xb/module/src/sysi.c +++ b/packages/platforms/accton/x86-64/as7315-27xb/onlp/builds/x86_64_accton_as7315_27xb/module/src/sysi.c @@ -47,9 +47,10 @@ onlp_sysi_platform_get(void) int onlp_sysi_onie_data_get(uint8_t** data, int* size) { - uint8_t* rdata = aim_zmalloc(256); - if(onlp_file_read(rdata, 256, size, IDPROM_PATH) == ONLP_STATUS_OK) { - if(*size == 256) { + const int len = 256; + uint8_t* rdata = aim_zmalloc(len + 1); + if(onlp_file_read(rdata, len, size, IDPROM_PATH) == ONLP_STATUS_OK) { + if(*size == len) { *data = rdata; return ONLP_STATUS_OK; } diff --git a/packages/platforms/accton/x86-64/as7316-26xb/onlp/builds/x86_64_accton_as7316_26xb/module/src/sysi.c b/packages/platforms/accton/x86-64/as7316-26xb/onlp/builds/x86_64_accton_as7316_26xb/module/src/sysi.c index 950d2864c..debb746f2 100644 --- a/packages/platforms/accton/x86-64/as7316-26xb/onlp/builds/x86_64_accton_as7316_26xb/module/src/sysi.c +++ b/packages/platforms/accton/x86-64/as7316-26xb/onlp/builds/x86_64_accton_as7316_26xb/module/src/sysi.c @@ -46,9 +46,10 @@ onlp_sysi_platform_get(void) int onlp_sysi_onie_data_get(uint8_t** data, int* size) { - uint8_t* rdata = aim_zmalloc(256); - if(onlp_file_read(rdata, 256, size, IDPROM_PATH) == ONLP_STATUS_OK) { - if(*size == 256) { + const int len = 256; + uint8_t* rdata = aim_zmalloc(len + 1); + if(onlp_file_read(rdata, len, size, IDPROM_PATH) == ONLP_STATUS_OK) { + if(*size == len) { *data = rdata; return ONLP_STATUS_OK; } diff --git a/packages/platforms/accton/x86-64/as7326-56x/onlp/builds/x86_64_accton_as7326_56x/module/src/sysi.c b/packages/platforms/accton/x86-64/as7326-56x/onlp/builds/x86_64_accton_as7326_56x/module/src/sysi.c index c5317d7e8..4f00fad9b 100755 --- a/packages/platforms/accton/x86-64/as7326-56x/onlp/builds/x86_64_accton_as7326_56x/module/src/sysi.c +++ b/packages/platforms/accton/x86-64/as7326-56x/onlp/builds/x86_64_accton_as7326_56x/module/src/sysi.c @@ -70,7 +70,7 @@ int onlp_sysi_onie_data_get(uint8_t** data, int* size) { const int len = 256; - uint8_t* rdata = aim_zmalloc(len); + uint8_t* rdata = aim_zmalloc(len + 1); char *paths[] = {IDPROM_PATH_2, IDPROM_PATH_1}; int ret = ONLP_STATUS_OK; int i; diff --git a/packages/platforms/accton/x86-64/as7515-24x/onlp/builds/x86_64_accton_as7515_24x/module/src/sysi.c b/packages/platforms/accton/x86-64/as7515-24x/onlp/builds/x86_64_accton_as7515_24x/module/src/sysi.c index 3eccb3a36..057af7513 100644 --- a/packages/platforms/accton/x86-64/as7515-24x/onlp/builds/x86_64_accton_as7515_24x/module/src/sysi.c +++ b/packages/platforms/accton/x86-64/as7515-24x/onlp/builds/x86_64_accton_as7515_24x/module/src/sysi.c @@ -109,10 +109,11 @@ onlp_sysi_platform_get(void) int onlp_sysi_onie_data_get(uint8_t** data, int* size) { - uint8_t* rdata = aim_zmalloc(256); + const int len = 256; + uint8_t* rdata = aim_zmalloc(len + 1); - if (onlp_file_read(rdata, 256, size, IDPROM_PATH) == ONLP_STATUS_OK) { - if(*size == 256) { + if (onlp_file_read(rdata, len, size, IDPROM_PATH) == ONLP_STATUS_OK) { + if(*size == len) { *data = rdata; return ONLP_STATUS_OK; } diff --git a/packages/platforms/accton/x86-64/as7535-28xb/onlp/builds/x86_64_accton_as7535_28xb/module/src/sysi.c b/packages/platforms/accton/x86-64/as7535-28xb/onlp/builds/x86_64_accton_as7535_28xb/module/src/sysi.c index 788c92a4a..da11e3f74 100644 --- a/packages/platforms/accton/x86-64/as7535-28xb/onlp/builds/x86_64_accton_as7535_28xb/module/src/sysi.c +++ b/packages/platforms/accton/x86-64/as7535-28xb/onlp/builds/x86_64_accton_as7535_28xb/module/src/sysi.c @@ -57,9 +57,10 @@ onlp_sysi_platform_get(void) int onlp_sysi_onie_data_get(uint8_t** data, int* size) { - uint8_t* rdata = aim_zmalloc(256); - if(onlp_file_read(rdata, 256, size, IDPROM_PATH) == ONLP_STATUS_OK) { - if(*size == 256) { + const int len = 256; + uint8_t* rdata = aim_zmalloc(len + 1); + if(onlp_file_read(rdata, len, size, IDPROM_PATH) == ONLP_STATUS_OK) { + if(*size == len) { *data = rdata; return ONLP_STATUS_OK; } diff --git a/packages/platforms/accton/x86-64/as7712-32x/onlp/builds/x86_64_accton_as7712_32x/module/src/sysi.c b/packages/platforms/accton/x86-64/as7712-32x/onlp/builds/x86_64_accton_as7712_32x/module/src/sysi.c index cf642c34b..6e45bcac6 100644 --- a/packages/platforms/accton/x86-64/as7712-32x/onlp/builds/x86_64_accton_as7712_32x/module/src/sysi.c +++ b/packages/platforms/accton/x86-64/as7712-32x/onlp/builds/x86_64_accton_as7712_32x/module/src/sysi.c @@ -63,14 +63,15 @@ onlp_sysi_platform_get(void) int onlp_sysi_onie_data_get(uint8_t** data, int* size) { - uint8_t* rdata = aim_zmalloc(256); - if(onlp_file_read(rdata, 256, size, IDPROM_PATH_1) == ONLP_STATUS_OK) { - if(*size == 256) { + const int len = 256; + uint8_t* rdata = aim_zmalloc(len + 1); + if(onlp_file_read(rdata, len, size, IDPROM_PATH_1) == ONLP_STATUS_OK) { + if(*size == len) { *data = rdata; return ONLP_STATUS_OK; } - } else if(onlp_file_read(rdata, 256, size, IDPROM_PATH_2) == ONLP_STATUS_OK) { - if(*size == 256) { + } else if(onlp_file_read(rdata, len, size, IDPROM_PATH_2) == ONLP_STATUS_OK) { + if(*size == len) { *data = rdata; return ONLP_STATUS_OK; } diff --git a/packages/platforms/accton/x86-64/as7716-24xc/onlp/builds/x86_64_accton_as7716_24xc/module/src/sysi.c b/packages/platforms/accton/x86-64/as7716-24xc/onlp/builds/x86_64_accton_as7716_24xc/module/src/sysi.c index 5763caef1..c34aea1e8 100644 --- a/packages/platforms/accton/x86-64/as7716-24xc/onlp/builds/x86_64_accton_as7716_24xc/module/src/sysi.c +++ b/packages/platforms/accton/x86-64/as7716-24xc/onlp/builds/x86_64_accton_as7716_24xc/module/src/sysi.c @@ -82,9 +82,10 @@ onlp_sysi_onie_data_get(uint8_t** data, int* size) { int ret = ONLP_STATUS_OK; int i = 0; - uint8_t* rdata = aim_zmalloc(256); + const int len = 256; + uint8_t* rdata = aim_zmalloc(len + 1); - for (i = 0; i < 128; i++) { + for (i = 0; i < len / 2; i++) { ret = onlp_i2c_readw(0, 0x56, i*2, ONLP_I2C_F_FORCE); if (ret < 0) { aim_free(rdata); @@ -96,7 +97,7 @@ onlp_sysi_onie_data_get(uint8_t** data, int* size) rdata[i*2+1] = (ret >> 8) & 0xff; } - *size = 256; + *size = len; *data = rdata; return ONLP_STATUS_OK; diff --git a/packages/platforms/accton/x86-64/as7716-32x/onlp/builds/x86_64_accton_as7716_32x/module/src/sysi.c b/packages/platforms/accton/x86-64/as7716-32x/onlp/builds/x86_64_accton_as7716_32x/module/src/sysi.c index 93502cbbe..6cb2732c3 100755 --- a/packages/platforms/accton/x86-64/as7716-32x/onlp/builds/x86_64_accton_as7716_32x/module/src/sysi.c +++ b/packages/platforms/accton/x86-64/as7716-32x/onlp/builds/x86_64_accton_as7716_32x/module/src/sysi.c @@ -55,9 +55,10 @@ onlp_sysi_onie_data_get(uint8_t** data, int* size) { int ret = ONLP_STATUS_OK; int i = 0; - uint8_t* rdata = aim_zmalloc(256); + const int len = 256; + uint8_t* rdata = aim_zmalloc(len + 1); - for (i = 0; i < 128; i++) { + for (i = 0; i < len / 2; i++) { ret = onlp_i2c_readw(0, 0x56, i*2, ONLP_I2C_F_FORCE); if (ret < 0) { aim_free(rdata); @@ -69,7 +70,7 @@ onlp_sysi_onie_data_get(uint8_t** data, int* size) rdata[i*2+1] = (ret >> 8) & 0xff; } - *size = 256; + *size = len; *data = rdata; return ONLP_STATUS_OK; diff --git a/packages/platforms/accton/x86-64/as7726-32x/onlp/builds/x86_64_accton_as7726_32x/module/src/sysi.c b/packages/platforms/accton/x86-64/as7726-32x/onlp/builds/x86_64_accton_as7726_32x/module/src/sysi.c index a15ddf03c..52fb42d24 100755 --- a/packages/platforms/accton/x86-64/as7726-32x/onlp/builds/x86_64_accton_as7726_32x/module/src/sysi.c +++ b/packages/platforms/accton/x86-64/as7726-32x/onlp/builds/x86_64_accton_as7726_32x/module/src/sysi.c @@ -63,10 +63,11 @@ onlp_sysi_platform_get(void) int onlp_sysi_onie_data_get(uint8_t** data, int* size) { - uint8_t* rdata = aim_zmalloc(256); + const int len = 256; + uint8_t* rdata = aim_zmalloc(len + 1); - if(onlp_file_read(rdata, 256, size, IDPROM_PATH) == ONLP_STATUS_OK) { - if(*size == 256) { + if(onlp_file_read(rdata, len, size, IDPROM_PATH) == ONLP_STATUS_OK) { + if(*size == len) { *data = rdata; return ONLP_STATUS_OK; } diff --git a/packages/platforms/accton/x86-64/as7816-64x/onlp/builds/x86_64_accton_as7816_64x/module/src/sysi.c b/packages/platforms/accton/x86-64/as7816-64x/onlp/builds/x86_64_accton_as7816_64x/module/src/sysi.c index 0d91972cb..be1356714 100755 --- a/packages/platforms/accton/x86-64/as7816-64x/onlp/builds/x86_64_accton_as7816_64x/module/src/sysi.c +++ b/packages/platforms/accton/x86-64/as7816-64x/onlp/builds/x86_64_accton_as7816_64x/module/src/sysi.c @@ -60,9 +60,10 @@ onlp_sysi_onie_data_get(uint8_t** data, int* size) { int ret = ONLP_STATUS_OK; int i = 0; - uint8_t* rdata = aim_zmalloc(256); + const int len = 256; + uint8_t* rdata = aim_zmalloc(len + 1); - for (i = 0; i < 128; i++) { + for (i = 0; i < len / 2; i++) { ret = onlp_i2c_readw(0, 0x56, i*2, ONLP_I2C_F_FORCE); if (ret < 0) { aim_free(rdata); @@ -74,7 +75,7 @@ onlp_sysi_onie_data_get(uint8_t** data, int* size) rdata[i*2+1] = (ret >> 8) & 0xff; } - *size = 256; + *size = len; *data = rdata; return ONLP_STATUS_OK; diff --git a/packages/platforms/accton/x86-64/as7926-40xfb/onlp/builds/x86_64_accton_as7926_40xfb/module/src/sysi.c b/packages/platforms/accton/x86-64/as7926-40xfb/onlp/builds/x86_64_accton_as7926_40xfb/module/src/sysi.c index d05407d40..40cd1eb79 100644 --- a/packages/platforms/accton/x86-64/as7926-40xfb/onlp/builds/x86_64_accton_as7926_40xfb/module/src/sysi.c +++ b/packages/platforms/accton/x86-64/as7926-40xfb/onlp/builds/x86_64_accton_as7926_40xfb/module/src/sysi.c @@ -57,10 +57,11 @@ onlp_sysi_platform_get(void) int onlp_sysi_onie_data_get(uint8_t** data, int* size) { - uint8_t* rdata = aim_zmalloc(256); + const int len = 256; + uint8_t* rdata = aim_zmalloc(len + 1); - if(onlp_file_read(rdata, 256, size, IDPROM_PATH) == ONLP_STATUS_OK) { - if(*size == 256) { + if(onlp_file_read(rdata, len, size, IDPROM_PATH) == ONLP_STATUS_OK) { + if(*size == len) { *data = rdata; return ONLP_STATUS_OK; } diff --git a/packages/platforms/accton/x86-64/as7926-40xke/onlp/builds/x86_64_accton_as7926_40xke/module/src/sysi.c b/packages/platforms/accton/x86-64/as7926-40xke/onlp/builds/x86_64_accton_as7926_40xke/module/src/sysi.c index ba59b06e7..ecd6306d4 100755 --- a/packages/platforms/accton/x86-64/as7926-40xke/onlp/builds/x86_64_accton_as7926_40xke/module/src/sysi.c +++ b/packages/platforms/accton/x86-64/as7926-40xke/onlp/builds/x86_64_accton_as7926_40xke/module/src/sysi.c @@ -57,9 +57,10 @@ onlp_sysi_platform_get(void) int onlp_sysi_onie_data_get(uint8_t** data, int* size) { - uint8_t* rdata = aim_zmalloc(256); - if(onlp_file_read(rdata, 256, size, IDPROM_PATH) == ONLP_STATUS_OK) { - if(*size == 256) { + const int len = 256; + uint8_t* rdata = aim_zmalloc(len + 1); + if(onlp_file_read(rdata, len, size, IDPROM_PATH) == ONLP_STATUS_OK) { + if(*size == len) { *data = rdata; return ONLP_STATUS_OK; } diff --git a/packages/platforms/accton/x86-64/as7926-80xk/onlp/builds/x86_64_accton_as7926_80xk/module/src/sysi.c b/packages/platforms/accton/x86-64/as7926-80xk/onlp/builds/x86_64_accton_as7926_80xk/module/src/sysi.c index bd6c28021..74ad439cf 100644 --- a/packages/platforms/accton/x86-64/as7926-80xk/onlp/builds/x86_64_accton_as7926_80xk/module/src/sysi.c +++ b/packages/platforms/accton/x86-64/as7926-80xk/onlp/builds/x86_64_accton_as7926_80xk/module/src/sysi.c @@ -57,9 +57,10 @@ onlp_sysi_platform_get(void) int onlp_sysi_onie_data_get(uint8_t** data, int* size) { - uint8_t* rdata = aim_zmalloc(256); - if(onlp_file_read(rdata, 256, size, IDPROM_PATH) == ONLP_STATUS_OK) { - if(*size == 256) { + const int len = 256; + uint8_t* rdata = aim_zmalloc(len + 1); + if(onlp_file_read(rdata, len, size, IDPROM_PATH) == ONLP_STATUS_OK) { + if(*size == len) { *data = rdata; return ONLP_STATUS_OK; } diff --git a/packages/platforms/accton/x86-64/as7946-30xb/onlp/builds/x86_64_accton_as7946_30xb/module/src/sysi.c b/packages/platforms/accton/x86-64/as7946-30xb/onlp/builds/x86_64_accton_as7946_30xb/module/src/sysi.c index 1ed792c4c..3f86ec79f 100644 --- a/packages/platforms/accton/x86-64/as7946-30xb/onlp/builds/x86_64_accton_as7946_30xb/module/src/sysi.c +++ b/packages/platforms/accton/x86-64/as7946-30xb/onlp/builds/x86_64_accton_as7946_30xb/module/src/sysi.c @@ -56,10 +56,11 @@ onlp_sysi_platform_get(void) int onlp_sysi_onie_data_get(uint8_t** data, int* size) { - uint8_t* rdata = aim_zmalloc(256); + const int len = 256; + uint8_t* rdata = aim_zmalloc(len + 1); - if(onlp_file_read(rdata, 256, size, IDPROM_PATH) == ONLP_STATUS_OK) { - if(*size == 256) { + if(onlp_file_read(rdata, len, size, IDPROM_PATH) == ONLP_STATUS_OK) { + if(*size == len) { *data = rdata; return ONLP_STATUS_OK; } diff --git a/packages/platforms/accton/x86-64/as7946-74xkb/onlp/builds/x86_64_accton_as7946_74xkb/module/src/sysi.c b/packages/platforms/accton/x86-64/as7946-74xkb/onlp/builds/x86_64_accton_as7946_74xkb/module/src/sysi.c index a9a9cdbcc..13e9a7af4 100644 --- a/packages/platforms/accton/x86-64/as7946-74xkb/onlp/builds/x86_64_accton_as7946_74xkb/module/src/sysi.c +++ b/packages/platforms/accton/x86-64/as7946-74xkb/onlp/builds/x86_64_accton_as7946_74xkb/module/src/sysi.c @@ -57,10 +57,11 @@ onlp_sysi_platform_get(void) int onlp_sysi_onie_data_get(uint8_t** data, int* size) { - uint8_t* rdata = aim_zmalloc(256); + const int len = 256; + uint8_t* rdata = aim_zmalloc(len + 1); - if(onlp_file_read(rdata, 256, size, IDPROM_PATH) == ONLP_STATUS_OK) { - if(*size == 256) { + if(onlp_file_read(rdata, len, size, IDPROM_PATH) == ONLP_STATUS_OK) { + if(*size == len) { *data = rdata; return ONLP_STATUS_OK; } diff --git a/packages/platforms/accton/x86-64/as9516-32d/onlp/builds/x86_64_accton_as9516_32d/module/src/sysi.c b/packages/platforms/accton/x86-64/as9516-32d/onlp/builds/x86_64_accton_as9516_32d/module/src/sysi.c index 018da90bf..cca502725 100644 --- a/packages/platforms/accton/x86-64/as9516-32d/onlp/builds/x86_64_accton_as9516_32d/module/src/sysi.c +++ b/packages/platforms/accton/x86-64/as9516-32d/onlp/builds/x86_64_accton_as9516_32d/module/src/sysi.c @@ -61,7 +61,8 @@ onlp_sysi_platform_get(void) int onlp_sysi_onie_data_get(uint8_t** data, int* size) { - uint8_t* rdata = aim_zmalloc(256); + const int len = 256; + uint8_t* rdata = aim_zmalloc(len + 1); int fail_cnt, rd_size, wr_size, i; uint8_t pca9548_chan; uint8_t byte_buf[128]; @@ -119,7 +120,7 @@ onlp_sysi_onie_data_get(uint8_t** data, int* size) mux_chn=0; i2c_addr = 0x51; rd_size = 1; - for(i=0; i<256; i++) + for(i=0; iother_versions); } -/*Read fanN_direction=1: The air flow of Fan6 is ˇ§AFI-Back to Frontˇ¨ - * 0: The air flow of Fan6 is ˇ§AFO-Front to backˇ¨ +/*Read fanN_direction=1: The air flow of Fan6 is "AFI-Back to Front" + * 0: The air flow of Fan6 is "AFO-Front to back" */ /* Thermal policy: diff --git a/packages/platforms/accton/x86-64/as9726-32d/onlp/builds/x86_64_accton_as9726_32d/module/src/sysi.c b/packages/platforms/accton/x86-64/as9726-32d/onlp/builds/x86_64_accton_as9726_32d/module/src/sysi.c index 576b70698..e80c82c08 100644 --- a/packages/platforms/accton/x86-64/as9726-32d/onlp/builds/x86_64_accton_as9726_32d/module/src/sysi.c +++ b/packages/platforms/accton/x86-64/as9726-32d/onlp/builds/x86_64_accton_as9726_32d/module/src/sysi.c @@ -58,10 +58,11 @@ const char* onlp_sysi_platform_get(void) int onlp_sysi_onie_data_get(uint8_t** data, int* size) { - uint8_t* rdata = aim_zmalloc(256); + const int len = 256; + uint8_t* rdata = aim_zmalloc(len + 1); - if (onlp_file_read(rdata, 256, size, IDPROM_PATH) == ONLP_STATUS_OK) { - if (*size == 256) { + if (onlp_file_read(rdata, len, size, IDPROM_PATH) == ONLP_STATUS_OK) { + if (*size == len) { *data = rdata; return ONLP_STATUS_OK; } diff --git a/packages/platforms/accton/x86-64/as9736-64d/onlp/builds/x86_64_accton_as9736_64d/module/src/sysi.c b/packages/platforms/accton/x86-64/as9736-64d/onlp/builds/x86_64_accton_as9736_64d/module/src/sysi.c index e5cd5d7f6..345d88f1b 100644 --- a/packages/platforms/accton/x86-64/as9736-64d/onlp/builds/x86_64_accton_as9736_64d/module/src/sysi.c +++ b/packages/platforms/accton/x86-64/as9736-64d/onlp/builds/x86_64_accton_as9736_64d/module/src/sysi.c @@ -67,10 +67,11 @@ const char* onlp_sysi_platform_get(void) int onlp_sysi_onie_data_get(uint8_t** data, int* size) { - uint8_t* rdata = aim_zmalloc(256); + const int len = 256; + uint8_t* rdata = aim_zmalloc(len + 1); - if (onlp_file_read(rdata, 256, size, IDPROM_PATH) == ONLP_STATUS_OK) { - if (*size == 256) { + if (onlp_file_read(rdata, len, size, IDPROM_PATH) == ONLP_STATUS_OK) { + if (*size == len) { *data = rdata; return ONLP_STATUS_OK; } diff --git a/packages/platforms/accton/x86-64/as9737-32db/onlp/builds/x86_64_accton_as9737_32db/module/src/sysi.c b/packages/platforms/accton/x86-64/as9737-32db/onlp/builds/x86_64_accton_as9737_32db/module/src/sysi.c index 9df5d53cf..538436c72 100644 --- a/packages/platforms/accton/x86-64/as9737-32db/onlp/builds/x86_64_accton_as9737_32db/module/src/sysi.c +++ b/packages/platforms/accton/x86-64/as9737-32db/onlp/builds/x86_64_accton_as9737_32db/module/src/sysi.c @@ -46,9 +46,10 @@ const char* onlp_sysi_platform_get(void) int onlp_sysi_onie_data_get(uint8_t** data, int* size) { - uint8_t* rdata = aim_zmalloc(256); - if(onlp_file_read(rdata, 256, size, IDPROM_PATH) == ONLP_STATUS_OK) { - if(*size == 256) { + const int len = 256; + uint8_t* rdata = aim_zmalloc(len + 1); + if(onlp_file_read(rdata, len, size, IDPROM_PATH) == ONLP_STATUS_OK) { + if(*size == len) { *data = rdata; return ONLP_STATUS_OK; } diff --git a/packages/platforms/accton/x86-64/as9817-64-nb/src/x86_64_accton_as9817_64_nb/module/src/sysi.c b/packages/platforms/accton/x86-64/as9817-64-nb/src/x86_64_accton_as9817_64_nb/module/src/sysi.c index bc0237aed..7ed68e5d4 100644 --- a/packages/platforms/accton/x86-64/as9817-64-nb/src/x86_64_accton_as9817_64_nb/module/src/sysi.c +++ b/packages/platforms/accton/x86-64/as9817-64-nb/src/x86_64_accton_as9817_64_nb/module/src/sysi.c @@ -137,9 +137,10 @@ onlp_sysi_platform_get(void) int onlp_sysi_onie_data_get(uint8_t** data, int* size) { - uint8_t* rdata = aim_zmalloc(256); - if (onlp_file_read(rdata, 256, size, IDPROM_PATH) == ONLP_STATUS_OK) { - if(*size == 256) { + const int len = 256; + uint8_t* rdata = aim_zmalloc(len + 1); + if (onlp_file_read(rdata, len, size, IDPROM_PATH) == ONLP_STATUS_OK) { + if(*size == len) { *data = rdata; return ONLP_STATUS_OK; } diff --git a/packages/platforms/accton/x86-64/as9817-64/src/x86_64_accton_as9817_64/module/src/sysi.c b/packages/platforms/accton/x86-64/as9817-64/src/x86_64_accton_as9817_64/module/src/sysi.c index b9d75382b..6af4a0e7e 100644 --- a/packages/platforms/accton/x86-64/as9817-64/src/x86_64_accton_as9817_64/module/src/sysi.c +++ b/packages/platforms/accton/x86-64/as9817-64/src/x86_64_accton_as9817_64/module/src/sysi.c @@ -150,9 +150,10 @@ onlp_sysi_platform_get(void) int onlp_sysi_onie_data_get(uint8_t** data, int* size) { - uint8_t* rdata = aim_zmalloc(256); - if (onlp_file_read(rdata, 256, size, IDPROM_PATH) == ONLP_STATUS_OK) { - if(*size == 256) { + const int len = 256; + uint8_t* rdata = aim_zmalloc(len + 1); + if (onlp_file_read(rdata, len, size, IDPROM_PATH) == ONLP_STATUS_OK) { + if(*size == len) { *data = rdata; return ONLP_STATUS_OK; } diff --git a/packages/platforms/accton/x86-64/as9926-24d/onlp/builds/x86_64_accton_as9926_24d/module/src/sysi.c b/packages/platforms/accton/x86-64/as9926-24d/onlp/builds/x86_64_accton_as9926_24d/module/src/sysi.c index 0b5a013e2..f14efdf46 100644 --- a/packages/platforms/accton/x86-64/as9926-24d/onlp/builds/x86_64_accton_as9926_24d/module/src/sysi.c +++ b/packages/platforms/accton/x86-64/as9926-24d/onlp/builds/x86_64_accton_as9926_24d/module/src/sysi.c @@ -57,9 +57,10 @@ onlp_sysi_platform_get(void) int onlp_sysi_onie_data_get(uint8_t** data, int* size) { - uint8_t* rdata = aim_zmalloc(256); - if(onlp_file_read(rdata, 256, size, IDPROM_PATH) == ONLP_STATUS_OK) { - if(*size == 256) { + const int len = 256; + uint8_t* rdata = aim_zmalloc(len + 1); + if(onlp_file_read(rdata, len, size, IDPROM_PATH) == ONLP_STATUS_OK) { + if(*size == len) { *data = rdata; return ONLP_STATUS_OK; } diff --git a/packages/platforms/accton/x86-64/as9926-24db/onlp/builds/x86_64_accton_as9926_24db/module/src/sysi.c b/packages/platforms/accton/x86-64/as9926-24db/onlp/builds/x86_64_accton_as9926_24db/module/src/sysi.c index 097060cfe..6bc335714 100644 --- a/packages/platforms/accton/x86-64/as9926-24db/onlp/builds/x86_64_accton_as9926_24db/module/src/sysi.c +++ b/packages/platforms/accton/x86-64/as9926-24db/onlp/builds/x86_64_accton_as9926_24db/module/src/sysi.c @@ -47,9 +47,10 @@ const char* onlp_sysi_platform_get(void) int onlp_sysi_onie_data_get(uint8_t** data, int* size) { - uint8_t* rdata = aim_zmalloc(256); - if(onlp_file_read(rdata, 256, size, IDPROM_PATH) == ONLP_STATUS_OK) { - if(*size == 256) { + const int len = 256; + uint8_t* rdata = aim_zmalloc(len + 1); + if(onlp_file_read(rdata, len, size, IDPROM_PATH) == ONLP_STATUS_OK) { + if(*size == len) { *data = rdata; return ONLP_STATUS_OK; }