rasdaemon/0010-rasdaemon-Fix-for-a-memory-out-of-bounds-issue-and-o.patch
Shiju Jose f9eb9d8c57 rasdaemon: Update with the latest patches for the CPU fault isolation, Hisilicon Kunpeng9xx common error records and improvements in the ras-mc-ctl for the Hisilicon Kunpeng9xx errors
Update with the latest patches for the
1. CPU online fault isolation for arm event.
2. Modify recording Hisilicon common error data in the rasdaemon
3. In the ras-mc-ctl,
3.1. Improve Hisilicon common error statistics.
3.2. Add support to display the HiSilicon vendor-errors for a specified module.
3.3. Add printing usage if necessary parameters are not passed for the HiSilicon vendor-errors options.
3.4. Reformat error info of the HiSilicon Kunpeng920.
3.5. Relocate reading and display Kunpeng920 errors to under Kunpeng9xx.
3.6. Updated the HiSilicon platform name as KunPeng9xx.
4. Fixed a memory out-of-bounds issue in the rasdaemon.

Signed-off-by: Shiju Jose <shiju.jose@huawei.com>
2022-05-30 09:30:03 +01:00

91 lines
2.9 KiB
Diff

From c019f2f82b7f224e95968037f2afc16f63cc1d1d Mon Sep 17 00:00:00 2001
From: Shiju Jose <shiju.jose@huawei.com>
Date: Thu, 28 Apr 2022 22:59:04 +0100
Subject: [PATCH 10/10] rasdaemon: Fix for a memory out-of-bounds issue and
optimized code to remove duplicate function.
Fixed a memory out-of-bounds issue with string pointers and
optimized code structure to remove duplicate function.
Signed-off-by: Lei Feng <fenglei47@h-partners.com>
Signed-off-by: Shiju Jose <shiju.jose@huawei.com>
---
non-standard-hisi_hip08.c | 6 +++---
non-standard-hisilicon.c | 2 +-
ras-non-standard-handler.c | 16 +---------------
3 files changed, 5 insertions(+), 19 deletions(-)
diff --git a/non-standard-hisi_hip08.c b/non-standard-hisi_hip08.c
index 9092183..4ef47ea 100644
--- a/non-standard-hisi_hip08.c
+++ b/non-standard-hisi_hip08.c
@@ -1014,15 +1014,15 @@ static int decode_hip08_pcie_local_error(struct ras_events *ras,
static struct ras_ns_ev_decoder hip08_ns_ev_decoder[] = {
{
- .sec_type = "1f8161e155d641e6bd107afd1dc5f7c5",
+ .sec_type = "1f8161e1-55d6-41e6-bd10-7afd1dc5f7c5",
.decode = decode_hip08_oem_type1_error,
},
{
- .sec_type = "45534ea6ce2341158535e07ab3aef91d",
+ .sec_type = "45534ea6-ce23-4115-8535-e07ab3aef91d",
.decode = decode_hip08_oem_type2_error,
},
{
- .sec_type = "b2889fc9e7d74f9da867af42e98be772",
+ .sec_type = "b2889fc9-e7d7-4f9d-a867-af42e98be772",
.decode = decode_hip08_pcie_local_error,
},
};
diff --git a/non-standard-hisilicon.c b/non-standard-hisilicon.c
index d1e1774..6ee9271 100644
--- a/non-standard-hisilicon.c
+++ b/non-standard-hisilicon.c
@@ -387,7 +387,7 @@ static int decode_hisi_common_section(struct ras_events *ras,
static struct ras_ns_ev_decoder hisi_section_ns_ev_decoder[] = {
{
- .sec_type = "c8b328a899174af69a132e08ab2e7586",
+ .sec_type = "c8b328a8-9917-4af6-9a13-2e08ab2e7586",
.decode = decode_hisi_common_section,
},
};
diff --git a/ras-non-standard-handler.c b/ras-non-standard-handler.c
index 6d5a6f8..6932e58 100644
--- a/ras-non-standard-handler.c
+++ b/ras-non-standard-handler.c
@@ -52,20 +52,6 @@ static char *uuid_le(const char *uu)
return uuid;
}
-static int uuid_le_cmp(const char *sec_type, const char *uuid2)
-{
- static char uuid1[32];
- char *p = uuid1;
- int i;
- static const unsigned char le[16] = {
- 3, 2, 1, 0, 5, 4, 7, 6, 8, 9, 10, 11, 12, 13, 14, 15};
-
- for (i = 0; i < 16; i++)
- p += sprintf(p, "%.2x", (unsigned char) sec_type[le[i]]);
- *p = 0;
- return strncmp(uuid1, uuid2, 32);
-}
-
int register_ns_ev_decoder(struct ras_ns_ev_decoder *ns_ev_decoder)
{
struct ras_ns_ev_decoder *list;
@@ -96,7 +82,7 @@ static int find_ns_ev_decoder(const char *sec_type, struct ras_ns_ev_decoder **p
ns_ev_decoder = ras_ns_ev_dec_list;
while (ns_ev_decoder) {
- if (uuid_le_cmp(sec_type, ns_ev_decoder->sec_type) == 0) {
+ if (strcmp(uuid_le(sec_type), ns_ev_decoder->sec_type) == 0) {
*p_ns_ev_dec = ns_ev_decoder;
match = 1;
break;
--
2.25.1