pacify gcc checks
authorSteve Kay <stevekay@gmail.com>
Sun, 29 May 2022 08:18:54 +0000 (09:18 +0100)
committerSebastien GODARD <sysstat@users.noreply.github.com>
Wed, 1 Jun 2022 08:31:22 +0000 (10:31 +0200)
Limit irq_name to size within its bounds

sa_conv.c

index 77f8e5e1b7a1393909f96461f6cfa59e568b0fad..60cdc47c87ea1392cccb47cdb0075c5ab145abdb 100644 (file)
--- a/sa_conv.c
+++ b/sa_conv.c
@@ -552,7 +552,8 @@ void upgrade_stats_irq(struct activity *act[], int p, unsigned int magic)
                                strcpy(sic->irq_name, K_LOWERSUM);
                        }
                        else {
-                               sprintf(sic->irq_name, "%d", i - 1);
+                               snprintf(sic->irq_name, sizeof(sic->irq_name), "%d", i - 1 > NR2_MAX ? NR2_MAX : i - 1);
+                               sic->irq_name[sizeof(sic->irq_name) - 1] = '\0';
                        }
                }
        }
@@ -570,7 +571,8 @@ void upgrade_stats_irq(struct activity *act[], int p, unsigned int magic)
                                strcpy(sic->irq_name, K_LOWERSUM);
                        }
                        else {
-                               sprintf(sic->irq_name, "%d", i - 1);
+                               snprintf(sic->irq_name, sizeof(sic->irq_name), "%d", i - 1 > NR2_MAX ? NR2_MAX : i - 1);
+                               sic->irq_name[sizeof(sic->irq_name) - 1] = '\0';
                        }
                }
        }