Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Segfault when using ledger print: std::__cxx11::basic_string / boost::u32regex_search #1850

Closed
Panke opened this issue Jan 7, 2020 · 3 comments
Labels
bug Something isn't working

Comments

@Panke
Copy link
Contributor

Panke commented Jan 7, 2020

ledger print -f test.txt gives a segfault. test.txt:

= expr payee =~ /Max/ & account =~ /Expenses:Unknown/
	Expenses:Rent  1
	Expenses:Unknown  -1

account Expenses:Car
	payee SB Tank


2019/12/30 * Max Mustermann  ; Rent
    Expenses:Unknown                        650,00
    Assets:Checking                             -650,00 €

Note that there is no segfault if:

  • the regex does not match the payee
  • Expenses:Unknown is not used in the automatic transaction
  • The account declaration for Expenses:Car is removed

Ledger 3.1.3-20190331, the command-line accounting tool

@tbm
Copy link
Contributor

tbm commented Jan 7, 2020

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff7006240 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::begin() const ()
   from /lib/x86_64-linux-gnu/libstdc++.so.6
(gdb) where
#0  0x00007ffff7006240 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::begin() const ()
   from /lib/x86_64-linux-gnu/libstdc++.so.6
#1  0x00007ffff7b42ac7 in boost::u32regex_search (s=<error reading variable: Cannot access memory at address 0x148>, e=..., 
    flags=boost::regex_constants::match_default) at /usr/include/boost/regex/icu.hpp:758
#2  0x00007ffff7b436d0 in ledger::mask_t::match (this=0x555555712100, text=<error reading variable: Cannot access memory at address 0x148>)
    at src/mask.h:90
#3  0x00007ffff7c6b1d3 in ledger::journal_t::register_account (this=0x5555556facd0, name="Expenses:Unknown", post=0x555555715920, master_account=
    0x5555556fb830) at src/journal.cc:139
#4  0x00007ffff7c8806b in ledger::auto_xact_t::extend_xact (this=0x555555710a30, xact=..., context=...) at src/xact.cc:793
#5  0x00007ffff7c6de36 in ledger::journal_t::extend_xact (this=0x5555556facd0, xact=0x5555557025f0) at src/journal.cc:445
#6  0x00007ffff7c6cb33 in ledger::journal_t::add_xact (this=0x5555556facd0, xact=0x5555557025f0) at src/journal.cc:371
#7  0x00007ffff7c4ac25 in ledger::(anonymous namespace)::instance_t::xact_directive (this=0x7fffffffa370, line=0x555555707a78 "    Assets:Checking", len=35)
    at src/textual.cc:710
#8  0x00007ffff7c47bde in ledger::(anonymous namespace)::instance_t::read_next_directive (this=0x7fffffffa370, error_flag=@0x7fffffff9e8f: false)
    at src/textual.cc:381
#9  0x00007ffff7c4699f in ledger::(anonymous namespace)::instance_t::parse (this=0x7fffffffa370) at src/textual.cc:252
#10 0x00007ffff7c55c6d in ledger::journal_t::read_textual (this=0x5555556facd0, context_stack=...) at src/textual.cc:2002
#11 0x00007ffff7c6e070 in ledger::journal_t::read (this=0x5555556facd0, context=...) at src/journal.cc:485
#12 0x00007ffff7c1ee18 in ledger::session_t::read_data (this=0x5555556faf60, master_account="") at src/session.cc:171
#13 0x00007ffff7c1f6da in ledger::session_t::read_journal_files (this=0x5555556faf60) at src/session.cc:203
#14 0x000055555564ca4a in ledger::global_scope_t::execute_command (this=0x5555556fa740, args=std::__cxx11::list = {...}, at_repl=false)
    at src/global.cc:226
#15 0x000055555564d0a5 in ledger::global_scope_t::execute_command_wrapper (this=0x5555556fa740, args=std::__cxx11::list = {...}, at_repl=false)
    at src/global.cc:271
#16 0x000055555562a237 in main (argc=4, argv=0x7fffffffda68, envp=0x7fffffffda90) at src/main.cc:122

@tbm tbm changed the title Segfault when using ledger print Segfault when using ledger print: std::__cxx11::basic_string / boost::u32regex_search Jan 7, 2020
@tbm tbm added the bug Something isn't working label Jan 7, 2020
@Panke
Copy link
Contributor Author

Panke commented Jan 7, 2020

@tbm Thanks for adding the backtrace, should have done so myself

Panke added a commit to Panke/ledger that referenced this issue Jan 8, 2020
@Panke
Copy link
Contributor Author

Panke commented Jan 8, 2020

#1851

# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants