bbidulock / icewm

A window manager designed for speed, usability, and consistency
Other
585 stars 98 forks source link

SIGSEGV in 2.3.1.16 #577

Closed cgm999 closed 3 years ago

cgm999 commented 3 years ago

Hi,

[cgm@silver ~]$ valgrind /tmp/icewm

==38176== Memcheck, a memory error detector
==38176== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==38176== Using Valgrind-3.16.1 and LibVEX; rerun with -h for copyright info
==38176== Command: /tmp/icewm --replace
==38176== 
==38176== Invalid read of size 8
==38176==    at 0x1F2315: upath::relative(upath const&) const (in /tmp/icewm)
==38176==    by 0x200840: YResourcePaths::verifyPaths(char const*) (in /tmp/icewm)
==38176==    by 0x200ABE: YResourcePaths::subdirs(char const*, bool) (in /tmp/icewm)
==38176==    by 0x1F90DC: YCursor::newLoader() (in /tmp/icewm)
==38176==    by 0x209D28: YXApplication::initPointers() (in /tmp/icewm)
==38176==    by 0x20B64A: YXApplication::YXApplication(int*, char***, char const*) (in /tmp/icewm)
==38176==    by 0x1D1412: YSMApplication::YSMApplication(int*, char***, char const*) (in /tmp/icewm)
==38176==    by 0x1877BC: YWMApp::YWMApp(int*, char***, char const*, bool, char const*, char const*, char const*) (in /tmp/icewm)
==38176==    by 0x146EE8: main (in /tmp/icewm)
==38176==  Address 0x85ef248 is 8 bytes before a block of size 96 free'd
==38176==    at 0x484058B: operator delete[](void*) (vg_replace_malloc.c:649)
==38176==    by 0x1F5A11: YBaseArray::clear() (in /tmp/icewm)
==38176==    by 0x2008B9: YResourcePaths::verifyPaths(char const*) (in /tmp/icewm)
==38176==    by 0x200ABE: YResourcePaths::subdirs(char const*, bool) (in /tmp/icewm)
==38176==    by 0x1F90DC: YCursor::newLoader() (in /tmp/icewm)
==38176==    by 0x209D28: YXApplication::initPointers() (in /tmp/icewm)
==38176==    by 0x20B64A: YXApplication::YXApplication(int*, char***, char const*) (in /tmp/icewm)
==38176==    by 0x1D1412: YSMApplication::YSMApplication(int*, char***, char const*) (in /tmp/icewm)
==38176==    by 0x1877BC: YWMApp::YWMApp(int*, char***, char const*, bool, char const*, char const*, char const*) (in /tmp/icewm)
==38176==    by 0x146EE8: main (in /tmp/icewm)
==38176==  Block was alloc'd at
==38176==    at 0x483F50F: operator new[](unsigned long) (vg_replace_malloc.c:431)
==38176==    by 0x1F559C: YBaseArray::setCapacity(int) (in /tmp/icewm)
==38176==    by 0x1F56DC: YBaseArray::append(void const*) (in /tmp/icewm)
==38176==    by 0x2007A9: YResourcePaths::addDir(upath) (in /tmp/icewm)
==38176==    by 0x200D8D: YResourcePaths::subdirs(char const*, bool) (in /tmp/icewm)
==38176==    by 0x1F90DC: YCursor::newLoader() (in /tmp/icewm)
==38176==    by 0x209D28: YXApplication::initPointers() (in /tmp/icewm)
==38176==    by 0x20B64A: YXApplication::YXApplication(int*, char***, char const*) (in /tmp/icewm)
==38176==    by 0x1D1412: YSMApplication::YSMApplication(int*, char***, char const*) (in /tmp/icewm)
==38176==    by 0x1877BC: YWMApp::YWMApp(int*, char***, char const*, bool, char const*, char const*, char const*) (in /tmp/icewm)
==38176==    by 0x146EE8: main (in /tmp/icewm)
==38176== 
==38176== Invalid read of size 8
==38176==    at 0x1F01F3: mstring::charAt(int) const (in /tmp/icewm)
==38176==    by 0x1F2392: upath::relative(upath const&) const (in /tmp/icewm)
==38176==    by 0x200840: YResourcePaths::verifyPaths(char const*) (in /tmp/icewm)
==38176==    by 0x200ABE: YResourcePaths::subdirs(char const*, bool) (in /tmp/icewm)
==38176==    by 0x1F90DC: YCursor::newLoader() (in /tmp/icewm)
==38176==    by 0x209D28: YXApplication::initPointers() (in /tmp/icewm)
==38176==    by 0x20B64A: YXApplication::YXApplication(int*, char***, char const*) (in /tmp/icewm)
==38176==    by 0x1D1412: YSMApplication::YSMApplication(int*, char***, char const*) (in /tmp/icewm)
==38176==    by 0x1877BC: YWMApp::YWMApp(int*, char***, char const*, bool, char const*, char const*, char const*) (in /tmp/icewm)
==38176==    by 0x146EE8: main (in /tmp/icewm)
==38176==  Address 0x85ef230 is 32 bytes before a block of size 96 in arena "client"
==38176== 
==38176== Invalid read of size 8
==38176==    at 0x1F01F9: mstring::charAt(int) const (in /tmp/icewm)
==38176==    by 0x1F2392: upath::relative(upath const&) const (in /tmp/icewm)
==38176==    by 0x200840: YResourcePaths::verifyPaths(char const*) (in /tmp/icewm)
==38176==    by 0x200ABE: YResourcePaths::subdirs(char const*, bool) (in /tmp/icewm)
==38176==    by 0x1F90DC: YCursor::newLoader() (in /tmp/icewm)
==38176==    by 0x209D28: YXApplication::initPointers() (in /tmp/icewm)
==38176==    by 0x20B64A: YXApplication::YXApplication(int*, char***, char const*) (in /tmp/icewm)
==38176==    by 0x1D1412: YSMApplication::YSMApplication(int*, char***, char const*) (in /tmp/icewm)
==38176==    by 0x1877BC: YWMApp::YWMApp(int*, char***, char const*, bool, char const*, char const*, char const*) (in /tmp/icewm)
==38176==    by 0x146EE8: main (in /tmp/icewm)
==38176==  Address 0x85ef220 is 16 bytes after a block of size 48 in arena "client"
==38176== 
==38176== Invalid read of size 8
==38176==    at 0x1F01FC: mstring::charAt(int) const (in /tmp/icewm)
==38176==    by 0x1F2392: upath::relative(upath const&) const (in /tmp/icewm)
==38176==    by 0x200840: YResourcePaths::verifyPaths(char const*) (in /tmp/icewm)
==38176==    by 0x200ABE: YResourcePaths::subdirs(char const*, bool) (in /tmp/icewm)
==38176==    by 0x1F90DC: YCursor::newLoader() (in /tmp/icewm)
==38176==    by 0x209D28: YXApplication::initPointers() (in /tmp/icewm)
==38176==    by 0x20B64A: YXApplication::YXApplication(int*, char***, char const*) (in /tmp/icewm)
==38176==    by 0x1D1412: YSMApplication::YSMApplication(int*, char***, char const*) (in /tmp/icewm)
==38176==    by 0x1877BC: YWMApp::YWMApp(int*, char***, char const*, bool, char const*, char const*, char const*) (in /tmp/icewm)
==38176==    by 0x146EE8: main (in /tmp/icewm)
==38176==  Address 0x85ef228 is 24 bytes after a block of size 48 in arena "client"
==38176== 
==38176== Invalid read of size 1
==38176==    at 0x1F0200: mstring::charAt(int) const (in /tmp/icewm)
==38176==    by 0x1F2392: upath::relative(upath const&) const (in /tmp/icewm)
==38176==    by 0x200840: YResourcePaths::verifyPaths(char const*) (in /tmp/icewm)
==38176==    by 0x200ABE: YResourcePaths::subdirs(char const*, bool) (in /tmp/icewm)
==38176==    by 0x1F90DC: YCursor::newLoader() (in /tmp/icewm)
==38176==    by 0x209D28: YXApplication::initPointers() (in /tmp/icewm)
==38176==    by 0x20B64A: YXApplication::YXApplication(int*, char***, char const*) (in /tmp/icewm)
==38176==    by 0x1D1412: YSMApplication::YSMApplication(int*, char***, char const*) (in /tmp/icewm)
==38176==    by 0x1877BC: YWMApp::YWMApp(int*, char***, char const*, bool, char const*, char const*, char const*) (in /tmp/icewm)
==38176==    by 0x146EE8: main (in /tmp/icewm)
==38176==  Address 0x113 is not stack'd, malloc'd or (recently) free'd
==38176==
==38176==
==38176== Process terminating with default action of signal 11 (SIGSEGV): dumping core
==38176==  Access not within mapped region at address 0x113
==38176==    at 0x1F0200: mstring::charAt(int) const (in /tmp/icewm)
==38176==    by 0x1F2392: upath::relative(upath const&) const (in /tmp/icewm)
==38176==    by 0x200840: YResourcePaths::verifyPaths(char const*) (in /tmp/icewm)
==38176==    by 0x200ABE: YResourcePaths::subdirs(char const*, bool) (in /tmp/icewm)
==38176==    by 0x1F90DC: YCursor::newLoader() (in /tmp/icewm)
==38176==    by 0x209D28: YXApplication::initPointers() (in /tmp/icewm)
==38176==    by 0x20B64A: YXApplication::YXApplication(int*, char***, char const*) (in /tmp/icewm)
==38176==    by 0x1D1412: YSMApplication::YSMApplication(int*, char***, char const*) (in /tmp/icewm)
==38176==    by 0x1877BC: YWMApp::YWMApp(int*, char***, char const*, bool, char const*, char const*, char const*) (in /tmp/icewm)
==38176==    by 0x146EE8: main (in /tmp/icewm)
==38176==  If you believe this happened as a result of a stack
==38176==  overflow in your program's main thread (unlikely but
==38176==  possible), you can try to increase the size of the
==38176==  main thread stack using the --main-stacksize= flag.
==38176==  The main thread stack size used in this run was 8388608.
==38176==
==38176== HEAP SUMMARY:
==38176==     in use at exit: 268,084 bytes in 841 blocks
==38176==   total heap usage: 4,421 allocs, 3,580 frees, 2,048,124 bytes allocated
==38176==
==38176== LEAK SUMMARY:
==38176==    definitely lost: 0 bytes in 0 blocks
==38176==    indirectly lost: 0 bytes in 0 blocks
==38176==      possibly lost: 0 bytes in 0 blocks
==38176==    still reachable: 266,068 bytes in 820 blocks
==38176==         suppressed: 0 bytes in 0 blocks
==38176== Rerun with --leak-check=full to see details of leaked memory
==38176==
==38176== For lists of detected and suppressed errors, rerun with: -s
==38176== ERROR SUMMARY: 6 errors from 5 contexts (suppressed: 0 from 0)
Segmentation fault