Signed-off-by: Yang Yanchao <yangyanch...@huawei.com>
---
 dmidecode.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/dmidecode.c b/dmidecode.c
index 3147d4d..9f8f66e 100644
--- a/dmidecode.c
+++ b/dmidecode.c
@@ -222,7 +222,7 @@ static int dmi_bcd_range(u8 value, u8 low, u8 high)
 
 static void dmi_dump(const struct dmi_header *h)
 {
-       static char raw_data[48];
+       static char raw_data[99];
        int row, i;
        unsigned int off;
        char *s;
@@ -231,7 +231,7 @@ static void dmi_dump(const struct dmi_header *h)
        for (row = 0; row < ((h->length - 1) >> 4) + 1; row++)
        {
                off = 0;
-               for (i = 0; i < 16 && i < h->length - (row << 4); i++)
+               for (i = 0; i < 16 && i < h->length - (row << 4) && off < 
sizeof(raw_data) - 2; i++)
                        off += sprintf(raw_data + off, i ? " %02X" : "%02X",
                               (h->data)[(row << 4) + i]);
                pr_list_item(raw_data);
@@ -251,7 +251,7 @@ static void dmi_dump(const struct dmi_header *h)
                                for (row = 0; row < ((l - 1) >> 4) + 1; row++)
                                {
                                        off = 0;
-                                       for (j = 0; j < 16 && j < l - (row << 
4); j++)
+                                       for (j = 0; j < 16 && j < l - (row << 
4)  && off < sizeof(raw_data) - 2; j++)
                                                off += sprintf(raw_data + off,
                                                       j ? " %02X" : "%02X",
                                                       (unsigned char)s[(row << 
4) + j]);
-- 
2.33.0


_______________________________________________
https://lists.nongnu.org/mailman/listinfo/dmidecode-devel

Reply via email to