From ffce9cb4629f7ed951ce8479722ece38a31ecf25 Mon Sep 17 00:00:00 2001 From: Vladislav Shpilevoy <v.shpilevoy@tarantool.org> Date: Sun, 24 Feb 2019 13:56:17 +0300 Subject: [PATCH] fiber: extend name buffer on 1 byte for \0 Checks for fiber_name legth worked with FIBER_NAME_MAX, while one byte in fact was occupied by terminating zero. Closes #4011 --- src/fiber.h | 2 +- test/app/fiber.result | 8 ++++---- test/app/fiber.test.lua | 2 +- test/unit/fiber.result | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/fiber.h b/src/fiber.h index d4ed1193a4..db58f320bc 100644 --- a/src/fiber.h +++ b/src/fiber.h @@ -417,7 +417,7 @@ struct fiber { struct ipc_wait_pad *wait_pad; /** Exception which caused this fiber's death. */ struct diag diag; - char name[FIBER_NAME_MAX]; + char name[FIBER_NAME_MAX + 1]; }; enum { FIBER_CALL_STACK = 16 }; diff --git a/test/app/fiber.result b/test/app/fiber.result index 1b72ed5da9..1649d59bda 100644 --- a/test/app/fiber.result +++ b/test/app/fiber.result @@ -1186,7 +1186,7 @@ fiber = nil --- ... -- --- gh-2622 fiber.name() truncates new name +-- gh-2622, gh-4011: fiber.name() truncates new name. -- fiber = require('fiber') --- @@ -1214,14 +1214,14 @@ fiber.name(long_name, {truncate = true}) ... fiber.name() --- -- aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +- aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ... f = fiber.self() --- ... fiber.name(f) --- -- aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +- aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ... fiber.name(f, 'new_name') --- @@ -1239,7 +1239,7 @@ fiber.name(f, long_name, {truncate = true}) ... fiber.name(f) --- -- aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +- aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ... -- -- gh-3493 fiber.create() does not roll back memtx transaction diff --git a/test/app/fiber.test.lua b/test/app/fiber.test.lua index a0d1e993bc..ee22087bd9 100644 --- a/test/app/fiber.test.lua +++ b/test/app/fiber.test.lua @@ -504,7 +504,7 @@ test_run:cmd("setopt delimiter ''"); fiber = nil -- --- gh-2622 fiber.name() truncates new name +-- gh-2622, gh-4011: fiber.name() truncates new name. -- fiber = require('fiber') long_name = string.rep('a', 300) diff --git a/test/unit/fiber.result b/test/unit/fiber.result index 4f7108ffcc..1f9773a523 100644 --- a/test/unit/fiber.result +++ b/test/unit/fiber.result @@ -5,7 +5,7 @@ SystemError Failed to allocate 42 bytes in allocator for exception: Cannot alloc # set new fiber name: Horace. -# fiber name is truncated: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa. +# fiber name is truncated: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa. *** fiber_name_test: done *** *** fiber_join_test *** -- GitLab