Re: [PATCH rt-tests v0 1/4] pmqtest: Increase buffer to avoid overflow

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 8/16/19 5:41 PM, Sebastian Andrzej Siewior wrote:
On 2019-08-16 08:42:01 [+0200], Daniel Wagner wrote:
Increase the size of the char buffer. gcc 9.1.1 reports:

src/pmqtest/pmqtest.c: In function ‘main’:
src/pmqtest/pmqtest.c:46:21: warning: ‘%d’ directive writing between 1 and 10 bytes into a region of size 8 [-Wformat-overflow=]
    46 | #define SYNCMQ_NAME "/syncmsg%d"
       |                     ^~~~~~~~~~~~

src/pmqtest/pmqtest.c:445:3: note: ‘sprintf’ output between 10 and 19 bytes into a destination of size 16
   445 |   sprintf(mqname, SYNCMQ_NAME, i);
       |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Signed-off-by: Daniel Wagner <wagi@xxxxxxxxx>
---
  src/pmqtest/pmqtest.c | 4 ++--
  1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/pmqtest/pmqtest.c b/src/pmqtest/pmqtest.c
index a04fc49872bf..20164c8d547f 100644
--- a/src/pmqtest/pmqtest.c
+++ b/src/pmqtest/pmqtest.c
@@ -440,7 +440,7 @@ int main(int argc, char *argv[])
  		goto nomem;
for (i = 0; i < num_threads; i++) {
-		char mqname[16];
+		char mqname[32];

The compiler says, based on SYNCMQ_NAME's size and maximum possible %d
we will have 19 bytes max. Why do you change it to 32? Why it is not
wrong, one might ask what the extra storage is for.

I was taking the 16 bytes value as reference and doubled it. Indeed, 19 bytes would be a better choice. Let me refresh the series.




[Index of Archives]     [RT Stable]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]

  Powered by Linux