clickhouse-client build with ASAN occasionally fails with heap-buffer-overflow

```
davenger-xps :) SELECT SearchPhrase FROM hits_100m_single WHERE SearchPhrase != '' ORDER BY EventTime LIMIT 10 SETTINGS max_threads=1

SELECT SearchPhrase
FROM hits_100m_single
WHERE SearchPhrase != ''
ORDER BY EventTime ASC
LIMIT 10
SETTINGS max_threads = 1

Query id: 6692e5b1-7072-4cf8-863e-606a07321cea

↘ Progress: 19.51 million rows, 330.14 MB (2.22 million rows/s., 37.60 MB/s.) ███████████████                                        (1.0 CPU, 4.54 MB RAM) 19%=================================================================
==984818==ERROR: AddressSanitizer: heap-buffer-overflow on address 0x604000136500 at pc 0x000032cb5df1 bp 0x7fff78dfe420 sp 0x7fff78dfe418
WRITE of size 1 at 0x604000136500 thread T0
    #0 0x32cb5df0 in UnicodeBar::render(double, char*) /home/davenger/src/ClickHouse/src/Common/UnicodeBar.cpp:52:14
    #1 0x32cb5e57 in UnicodeBar::render(double) /home/davenger/src/ClickHouse/src/Common/UnicodeBar.cpp:58:9
    #2 0x4ab9e059 in DB::ProgressIndication::writeProgress(DB::WriteBufferFromFileDescriptor&) /home/davenger/src/ClickHouse/src/Common/ProgressIndication.cpp:251:39
    #3 0x4ab4b796 in DB::ClientBase::onProgress(DB::Progress const&) /home/davenger/src/ClickHouse/src/Client/ClientBase.cpp:1027:29
    #4 0x4ab4b07c in DB::ClientBase::receiveAndProcessPacket(std::__1::shared_ptr<DB::IAST>, bool) /home/davenger/src/ClickHouse/src/Client/ClientBase.cpp:975:13
    #5 0x4ab4a64e in DB::ClientBase::receiveResult(std::__1::shared_ptr<DB::IAST>) /home/davenger/src/ClickHouse/src/Client/ClientBase.cpp:939:18
    #6 0x4ab49865 in DB::ClientBase::processOrdinaryQuery(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, std::__1::shared_ptr<DB::IAST>) /home/davenger/src/ClickHouse/src/Client/ClientBase.cpp:863:13
    #7 0x4ab47f3a in DB::ClientBase::processParsedSingleQuery(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, std::__1::shared_ptr<DB::IAST>, std::__1::optional<bool>, bool) /home/davenger/src/ClickHouse/src/Client/ClientBase.cpp:1613:13
    #8 0x4ab45d38 in DB::ClientBase::processTextAsSingleQuery(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&) /home/davenger/src/ClickHouse/src/Client/ClientBase.cpp:803:9
    #9 0x4ab5c100 in DB::ClientBase::processQueryText(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&) /home/davenger/src/ClickHouse/src/Client/ClientBase.cpp:2011:9
    #10 0x4ab5f7ee in DB::ClientBase::runInteractive() /home/davenger/src/ClickHouse/src/Client/ClientBase.cpp:2183:18
    #11 0x32fb8492 in DB::Client::main(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>> const&) /home/davenger/src/ClickHouse/programs/client/Client.cpp:263:9
    #12 0x578d70b7 in Poco::Util::Application::run() /home/davenger/src/ClickHouse/contrib/poco/Util/src/Application.cpp:334:8
    #13 0x32fd4b01 in mainEntryClickHouseClient(int, char**) /home/davenger/src/ClickHouse/programs/client/Client.cpp:1289:23
    #14 0x1e7476a7 in main /home/davenger/src/ClickHouse/programs/main.cpp:482:12
    #15 0x7f7e0a143d8f in __libc_start_call_main csu/../sysdeps/nptl/libc_start_call_main.h:58:16
    #16 0x7f7e0a143e3f in __libc_start_main csu/../csu/libc-start.c:392:3
    #17 0x1e684ced in _start (/home/davenger/src/ClickHouse/build_Debug/programs/clickhouse+0x1e684ced) (BuildId: d335d9a1bdd49aa7ade9a15bb3801a7b1c165d2f)

0x604000136500 is located 0 bytes to the right of 48-byte region [0x6040001364d0,0x604000136500)
allocated by thread T0 here:
    #0 0x1e74496d in operator new(unsigned long) (/home/davenger/src/ClickHouse/build_Debug/programs/clickhouse+0x1e74496d) (BuildId: d335d9a1bdd49aa7ade9a15bb3801a7b1c165d2f)
    #1 0x1e74c074 in void* std::__1::__libcpp_operator_new[abi:v15000]<unsigned long>(unsigned long) /home/davenger/src/ClickHouse/contrib/llvm-project/libcxx/include/new:246:10
    #2 0x1e74bfd3 in std::__1::__libcpp_allocate[abi:v15000](unsigned long, unsigned long) /home/davenger/src/ClickHouse/contrib/llvm-project/libcxx/include/new:272:10
    #3 0x1f9c71ac in std::__1::allocator<char>::allocate[abi:v15000](unsigned long) /home/davenger/src/ClickHouse/contrib/llvm-project/libcxx/include/__memory/allocator.h:112:38
    #4 0x1f9c6e50 in std::__1::__allocation_result<std::__1::allocator_traits<std::__1::allocator<char>>::pointer> std::__1::__allocate_at_least[abi:v15000]<std::__1::allocator<char>>(std::__1::allocator<char>&, unsigned long) /home/davenger/src/ClickHouse/contrib/llvm-project/libcxx/include/__memory/allocate_at_least.h:54:19
    #5 0x61725702 in std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>::__init(unsigned long, char) /home/davenger/src/ClickHouse/contrib/llvm-project/libcxx/include/string:2116:29
    #6 0x1e74eb03 in std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>::basic_string[abi:v15000](unsigned long, char) /home/davenger/src/ClickHouse/contrib/llvm-project/libcxx/include/string:2132:5
    #7 0x32cb5e37 in UnicodeBar::render(double) /home/davenger/src/ClickHouse/src/Common/UnicodeBar.cpp:57:21
    #8 0x4ab9e059 in DB::ProgressIndication::writeProgress(DB::WriteBufferFromFileDescriptor&) /home/davenger/src/ClickHouse/src/Common/ProgressIndication.cpp:251:39
    #9 0x4ab4b796 in DB::ClientBase::onProgress(DB::Progress const&) /home/davenger/src/ClickHouse/src/Client/ClientBase.cpp:1027:29
    #10 0x4ab4b07c in DB::ClientBase::receiveAndProcessPacket(std::__1::shared_ptr<DB::IAST>, bool) /home/davenger/src/ClickHouse/src/Client/ClientBase.cpp:975:13
    #11 0x4ab4a64e in DB::ClientBase::receiveResult(std::__1::shared_ptr<DB::IAST>) /home/davenger/src/ClickHouse/src/Client/ClientBase.cpp:939:18
    #12 0x4ab49865 in DB::ClientBase::processOrdinaryQuery(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, std::__1::shared_ptr<DB::IAST>) /home/davenger/src/ClickHouse/src/Client/ClientBase.cpp:863:13
    #13 0x4ab47f3a in DB::ClientBase::processParsedSingleQuery(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, std::__1::shared_ptr<DB::IAST>, std::__1::optional<bool>, bool) /home/davenger/src/ClickHouse/src/Client/ClientBase.cpp:1613:13
    #14 0x4ab45d38 in DB::ClientBase::processTextAsSingleQuery(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&) /home/davenger/src/ClickHouse/src/Client/ClientBase.cpp:803:9
    #15 0x4ab5c100 in DB::ClientBase::processQueryText(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&) /home/davenger/src/ClickHouse/src/Client/ClientBase.cpp:2011:9
    #16 0x4ab5f7ee in DB::ClientBase::runInteractive() /home/davenger/src/ClickHouse/src/Client/ClientBase.cpp:2183:18
    #17 0x32fb8492 in DB::Client::main(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>> const&) /home/davenger/src/ClickHouse/programs/client/Client.cpp:263:9
    #18 0x578d70b7 in Poco::Util::Application::run() /home/davenger/src/ClickHouse/contrib/poco/Util/src/Application.cpp:334:8
    #19 0x32fd4b01 in mainEntryClickHouseClient(int, char**) /home/davenger/src/ClickHouse/programs/client/Client.cpp:1289:23
    #20 0x1e7476a7 in main /home/davenger/src/ClickHouse/programs/main.cpp:482:12
    #21 0x7f7e0a143d8f in __libc_start_call_main csu/../sysdeps/nptl/libc_start_call_main.h:58:16

SUMMARY: AddressSanitizer: heap-buffer-overflow /home/davenger/src/ClickHouse/src/Common/UnicodeBar.cpp:52:14 in UnicodeBar::render(double, char*)
Shadow bytes around the buggy address:
  0x0c088001ec50: fa fa fd fd fd fd fd fd fa fa fd fd fd fd fd fd
  0x0c088001ec60: fa fa fd fd fd fd fd fd fa fa fd fd fd fd fd fd
  0x0c088001ec70: fa fa fd fd fd fd fd fd fa fa fd fd fd fd fd fd
  0x0c088001ec80: fa fa fd fd fd fd fd fd fa fa fd fd fd fd fd fd
  0x0c088001ec90: fa fa fd fd fd fd fd fd fa fa 00 00 00 00 00 00
=>0x0c088001eca0:[fa]fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x0c088001ecb0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x0c088001ecc0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x0c088001ecd0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x0c088001ece0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x0c088001ecf0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
Shadow byte legend (one shadow byte represents 8 application bytes):
  Addressable:           00
  Partially addressable: 01 02 03 04 05 06 07 
  Heap left redzone:       fa
  Freed heap region:       fd
  Stack left redzone:      f1
  Stack mid redzone:       f2
  Stack right redzone:     f3
  Stack after return:      f5
  Stack use after scope:   f8
  Global redzone:          f9
  Global init order:       f6
  Poisoned by user:        f7
  Container overflow:      fc
  Array cookie:            ac
  Intra object redzone:    bb
  ASan internal:           fe
  Left alloca redzone:     ca
  Right alloca redzone:    cb
==984818==ABORTING

```
ColumnNumbers getArgumentsThatAreAlwaysConstant() const override { return {3}; }
    ColumnPtr executeImpl(const ColumnsWithTypeAndName & arguments, const DataTypePtr &, size_t input_rows_count) const override
    {
        
        Float64 max_width = 80; 
        if (arguments.size() == 4)
        {
            const auto & max_width_column = *arguments[3].column;
            if (!isColumnConst(max_width_column))
                throw Exception(ErrorCodes::ILLEGAL_COLUMN, "Fourth argument for function {} must be constant", getName());
            max_width = max_width_column.getFloat64(0);
        }
        if (isNaN(max_width))
            throw Exception("Argument 'max_width' must not be NaN", ErrorCodes::ILLEGAL_TYPE_OF_ARGUMENT);
        if (max_width < 1)
            throw Exception("Argument 'max_width' must be >= 1", ErrorCodes::ARGUMENT_OUT_OF_BOUND);
        if (max_width > 1000)
            throw Exception("Argument 'max_width' must be <= 1000", ErrorCodes::ARGUMENT_OUT_OF_BOUND);
        const auto & src = *arguments[0].column;
        size_t current_offset = 0;