Nп/п : 13 из 80
От : Nil A 2:5015/46 16 сен 26 22:46:08
К : All 16 сен 26 22:52:01
Тема : AddressSanitizer: stack-buffer-overflow SquishArea::make_dump_msg
----------------------------------------------------------------------------------
@REPLY: 2:5015/46 6aaaed3a
@MSGID: 2:5015/46 6aaaf33c
@CHRS: CP866 2
@TZUTC: 0300
@TID: hpt/lnx 1.9
Hello, All!
Wednesday September 16 2026 22:24, from Nil A -> All:
NA> Почему-то работа со сквишом как-то не очень. Если на сообщении в
NA> сквишовой базе делать dump. На JAM работает.
На джаме тоже не работает. Сейчас поаккуратнее стект напишу.
Собственно, не важно как мы до HexDump16() добрались.
На Squish:
==23921==ERROR: AddressSanitizer: stack-buffer-overflow on address
0x7ffe042d5fae at pc 0x0000007c1d67 bp 0x7ffe042d5b40 sp 0x7ffe042d5b38
READ of size 1 at 0x7ffe042d5fae thread T0
#0 0x7c1d66 in HexDump16(char*, char const*, int, char const*, int)
/home/fido/src/golded-plus/goldlib/gall/gmemutil.cpp:53
#1 0x40c62f in HexDump16(char*, char const*, int, int)
/home/fido/src/golded-plus/goldlib/gall/gmemall.h:97
#2 0x6de9d2 in SquishArea::make_dump_msg(Line*&, gmsg*, char*)
/home/fido/src/golded-plus/goldlib/gmb3/gmosqsh5.cpp:150
#3 0x5714ae in Area::MakeDumpMsg(GMsg*, char*)
/home/fido/src/golded-plus/golded3/gmarea.h:1314
#4 0x562db8 in MakeLineIndex(GMsg*, int, bool, bool)
/home/fido/src/golded-plus/golded3/geline.cpp:3462
#5 0x56222f in GMsg::TextToLines(int, bool, bool)
/home/fido/src/golded-plus/golded3/geline.cpp:3323
#6 0x57fd09 in Area::LoadMsg(GMsg*, unsigned int, int, int)
/home/fido/src/golded-plus/golded3/gelmsg.cpp:186
#7 0x5f56ad in LoadMessage(GMsg*, int)
/home/fido/src/golded-plus/golded3/geread.cpp:1375
#8 0x5f1030 in Reader() /home/fido/src/golded-plus/golded3/geread.cpp:364
#9 0x5801ea in main /home/fido/src/golded-plus/golded3/gemain.cpp:54
#10 0x7fbd3be0bf44 in __libc_start_main
(/lib/x86_64-linux-gnu/libc.so.6+0x21f44)
#11 0x408228
(/home/fido/src/golded-plus/build-asan/golded3/golded+0x408228)
Address 0x7ffe042d5fae is located in stack of thread T0 at offset 542 in frame
#0 0x6dcbdf in SquishArea::make_dump_msg(Line*&, gmsg*, char*)
/home/fido/src/golded-plus/goldlib/gmb3/gmosqsh5.cpp:63
This frame has 6 object(s):
[32, 40) `line` (line 89)
[64, 76) `_idx` (line 73)
[96, 124) `_frm` (line 79)
[160, 260) `buf` (line 88)
[304, 542) `_hdr` (line 85) <== Memory access at offset 542
overflows this variable
[608, 864) `_base` (line 68)
SUMMARY: AddressSanitizer: stack-buffer-overflow
/home/fido/src/golded-plus/goldlib/gall/gmemutil.cpp:53 in HexDump16(char*, char const*, int, char const*, int)
На JAM:
==24680==ERROR: AddressSanitizer: stack-buffer-overflow on address
0x7ffe89c2478e at pc 0x0000007c1d67 bp 0x7ffe89c243d0 sp 0x7ffe89c243c8
READ of size 1 at 0x7ffe89c2478e thread T0
#0 0x7c1d66 in HexDump16(char*, char const*, int, char const*, int)
/home/fido/src/golded-plus/goldlib/gall/gmemutil.cpp:53
#1 0x40c62f in HexDump16(char*, char const*, int, int)
/home/fido/src/golded-plus/goldlib/gall/gmemall.h:97
#2 0x6986af in FidoArea::make_dump_msg(Line*&, gmsg*, char*)
/home/fido/src/golded-plus/goldlib/gmb3/gmofido5.cpp:192
#3 0x5714ae in Area::MakeDumpMsg(GMsg*, char*)
/home/fido/src/golded-plus/golded3/gmarea.h:1314
#4 0x562db8 in MakeLineIndex(GMsg*, int, bool, bool)
/home/fido/src/golded-plus/golded3/geline.cpp:3462
#5 0x56222f in GMsg::TextToLines(int, bool, bool)
/home/fido/src/golded-plus/golded3/geline.cpp:3323
#6 0x57fd09 in Area::LoadMsg(GMsg*, unsigned int, int, int)
/home/fido/src/golded-plus/golded3/gelmsg.cpp:186
#7 0x5f56ad in LoadMessage(GMsg*, int)
/home/fido/src/golded-plus/golded3/geread.cpp:1375
#8 0x5f1030 in Reader() /home/fido/src/golded-plus/golded3/geread.cpp:364
#9 0x5801ea in main /home/fido/src/golded-plus/golded3/gemain.cpp:54
#10 0x7f6fa82e0f44 in __libc_start_main
(/lib/x86_64-linux-gnu/libc.so.6+0x21f44)
#11 0x408228
(/home/fido/src/golded-plus/build-asan/golded3/golded+0x408228)
Address 0x7ffe89c2478e is located in stack of thread T0 at offset 414 in frame
#0 0x697a81 in FidoArea::make_dump_msg(Line*&, gmsg*, char*)
/home/fido/src/golded-plus/goldlib/gmb3/gmofido5.cpp:149
This frame has 3 object(s):
[48, 56) `line` (line 157)
[80, 180) `buf` (line 156)
[224, 414) `_hdr` (line 153) <== Memory access at offset 414
overflows this variable
HINT: this may be a false positive if your program uses some
custom stack unwind mechanism, swapcontext or vfork
(longjmp and C++ exceptions *are* supported)
SUMMARY: AddressSanitizer: stack-buffer-overflow
/home/fido/src/golded-plus/goldlib/gall/gmemutil.cpp:53 in HexDump16(char*, char const*, int, char const*, int)
Best Regards, Nil
--- GoldED+/LNX 1.1.5-b20260305
* Origin: I`m not AI but still can make mistakes, so double-check. (2:5015/46)
SEEN-BY: 5001/100 5015/46 5020/715 1146 4441
5030/1081 5051/44 5057/19 6035/66
@PATH: 5015/46 5020/715