Menu

#479 Segfault with nsis 2.16 on MacOS 10.3 (ppc)

2.0 Series
closed-fixed
5
2015-02-23
2006-05-03
No

Hi,
with nsis 2.16 with patch from issue 1474597 compiled
on ppc.

(gdb) r
The program being debugged has been started already.
Start it from the beginning? (y or n) y
Starting program:
/Users/hanwen/src/gub/target/local/system/usr/bin/makensis
lilypond.nsi
MakeNSIS v02-May-2006.cvs - Copyright 1999-2006
Nullsoft, Inc.

Portions Copyright (C) 1995-1998 Jean-loup Gailly and
Mark Adler (zlib).
Portions Copyright (C) 1996-2002 Julian R Seward (bzip2).
Portions Copyright (C) 1999-2003 Igor Pavlov (lzma).

Contributors: nnop@newmail.ru, Ryan Geiss, Andras
Varga, Drew Davidson, Peter Windridge, Dave Laundon,
Robert Rainwater, Yaroslav Faybishenko, Jeff Doozan,
Amir Szekely, Ximon Eighteen, et al.

Processing config:
Processing plugin dlls:
"/Users/hanwen/src/gub/target/local/system/usr/share/nsis/Plugins/*.dll"

Program received signal EXC_BAD_ACCESS, Could not
access memory.
0x000c0330 in std::_Rb_tree<std::string,
std::pair<std::string const, std::string>,
std::_Select1st<std::pair<std::string const,
std::string> >, std::less<std::string>,
std::allocator<std::pair<std::string const,
std::string> > >::lower_bound(std::string const&)
(this=0xbfffd588, __k=@0xbfff4d70) at
/usr/include/gcc/darwin/3.3/c++/bits/stl_tree.h:1320
1320 _Link_type __x = _M_root(); /* Current
node. */
(gdb) bt
#0 0x000c0330 in std::_Rb_tree<std::string,
std::pair<std::string const, std::string>,
std::_Select1st<std::pair<std::string const,
std::string> >, std::less<std::string>,
std::allocator<std::pair<std::string const,
std::string> > >::lower_bound(std::string const&)
(this=0xbfffd588, __k=@0xbfff4d70) at
/usr/include/gcc/darwin/3.3/c++/bits/stl_tree.h:1320
#1 0x000bf5c4 in std::map<std::string, std::string,
std::less<std::string>,
std::allocator<std::pair<std::string const,
std::string> > >::lower_bound(std::string const&)
(this=0xbfffd588, __x=@0xbfff4d70) at
/usr/include/gcc/darwin/3.3/c++/bits/stl_map.h:517
#2 0x000be864 in std::map<std::string, std::string,
std::less<std::string>,
std::allocator<std::pair<std::string const,
std::string> > >::operator[](std::string const&)
(this=0xbfffd588, __k=@0xbfff4d70) at
/usr/include/gcc/darwin/3.3/c++/bits/stl_map.h:325
#3 0x000227d4 in Plugins::GetExports(std::string
const&, bool) (this=0xbfffd57c, pathToDll=@0xbfff4e00,
displayInfo=true) at Source/Plugins.cpp:129
#4 0x00021c0c in Plugins::FindCommands(std::string
const&, bool) (this=0xbfffd57c, path=@0xbfff4ea0,
displayInfo=true) at Source/Plugins.cpp:40
#5 0x00010584 in CEXEBuild::build_plugin_table()
(this=0xbfffd500) at Source/build.cpp:3076
#6 0x0002b694 in CEXEBuild::doCommand(int,
LineParser&) (this=0xbfffd500, which_token=65,
line=@0xbfff9240) at Source/script.cpp:874
#7 0x0002a464 in CEXEBuild::doParse(char const*)
(this=0xbfffd500, str=0x591000 "!define
MUI_INSERT_NSISCONF") at Source/script.cpp:501
#8 0x0002ad60 in CEXEBuild::parseScript()
(this=0xbfffd500) at Source/script.cpp:687
#9 0x00029094 in CEXEBuild::process_script(__sFILE*,
char*) (this=0xbfffd500, filepointer=0xa000a928,
filename=0x180200c
"/Users/hanwen/src/gub/target/local/system/usr/etc/nsisconf.nsh")
at Source/script.cpp:203
#10 0x0001eb0c in process_config(CEXEBuild&,
std::string&) (build=@0xbfffd500, conf=@0xbffff5c0) at
Source/makenssi.cpp:210#11 0x0001fa40 in main (argc=2,
argv=0xbffffac8) at Source/makenssi.cpp:433
(gdb) up
#1 0x000bf5c4 in std::map<std::string, std::string,
std::less<std::string>,
std::allocator<std::pair<std::string const,
std::string> > >::lower_bound(std::string const&)
(this=0xbfffd588, __x=@0xbfff4d70) at
/usr/include/gcc/darwin/3.3/c++/bits/stl_map.h:517
517 lower_bound(const key_type& __x) { return
_M_t.lower_bound(__x); }
(gdb)
#2 0x000be864 in std::map<std::string, std::string,
std::less<std::string>,
std::allocator<std::pair<std::string const,
std::string> > >::operator[](std::string const&)
(this=0xbfffd588, __k=@0xbfff4d70) at
/usr/include/gcc/darwin/3.3/c++/bits/stl_map.h:325
325 iterator __i = lower_bound(__k);
(gdb)
#3 0x000227d4 in Plugins::GetExports(std::string
const&, bool) (this=0xbfffd57c, pathToDll=@0xbfff4e00,
displayInfo=true) at Source/Plugins.cpp:129
129 Source/Plugins.cpp: No such file or directory.
in Source/Plugins.cpp
(gdb) p *this
$10 = {
m_command_lowercase_to_command = {
_M_t = {
<_Rb_tree_base<std::pair<const
std::basic_string<char, std::char_traits<char>,
std::allocator<char> >, std::basic_string<char,
std::char_traits<char>, std::allocator<char> >
>,std::allocator<std::pair<const
std::basic_string<char, std::char_traits<char>,
std::allocator<char> >, std::basic_string<char,
std::char_traits<char>, std::allocator<char> > > > >> = {
<_Rb_tree_alloc_base<std::pair<const
std::basic_string<char, std::char_traits<char>,
std::allocator<char> >, std::basic_string<char,
std::char_traits<char>, std::allocator<char> >
>,std::allocator<std::pair<const
std::basic_string<char, std::char_traits<char>,
std::allocator<char> >, std::basic_string<char,
std::char_traits<char>, std::allocator<char> > >
>,true>> = {
_M_header = 0x1800200
}, <No data fields>},
members of _Rb_tree<std::basic_string<char,
std::char_traits<char>, std::allocator<char>
>,std::pair<const std::basic_string<char,
std::char_traits<char>, std::allocator<char> >,
std::basic_string<char, std::char_traits<char>,
std::allocator<char> >
>,std::_Select1st<std::pair<const
std::basic_string<char, std::char_traits<char>,
std::allocator<char> >, std::basic_string<char,
std::char_traits<char>, std::allocator<char> > >
>,std::less<std::basic_string<char,
std::char_traits<char>, std::allocator<char> >
>,std::allocator<std::pair<const
std::basic_string<char, std::char_traits<char>,
std::allocator<char> >, std::basic_string<char,
std::char_traits<char>, std::allocator<char> > > > >:
_M_node_count = 0,
_M_key_compare = {
<binary_function<std::basic_string<char,
std::char_traits<char>, std::allocator<char>
>,std::basic_string<char, std::char_traits<char>,
std::allocator<char> >,bool>> = {<No data fields>}, <No
data fields>}
}
},
m_command_to_path = {
_M_t = {
<_Rb_tree_base<std::pair<const
std::basic_string<char, std::char_traits<char>,
std::allocator<char> >, std::basic_string<char,
std::char_traits<char>, std::allocator<char> >
>,std::allocator<std::pair<const
std::basic_string<char, std::char_traits<char>,
std::allocator<char> >, std::basic_string<char,
std::char_traits<char>, std::allocator<char> > > > >> = {
<_Rb_tree_alloc_base<std::pair<const
std::basic_string<char, std::char_traits<char>,
std::allocator<char> >, std::basic_string<char,
std::char_traits<char>, std::allocator<char> >
>,std::allocator<std::pair<const
std::basic_string<char, std::char_traits<char>,
std::allocator<char> >, std::basic_string<char,
std::char_traits<char>, std::allocator<char> > >
>,true>> = {
_M_header = 0x2180000
}, <No data fields>},
members of _Rb_tree<std::basic_string<char,
std::char_traits<char>, std::allocator<char>
>,std::pair<const std::basic_string<char,
std::char_traits<char>, std::allocator<char> >,
std::basic_string<char, std::char_traits<char>,
std::allocator<char> >
>,std::_Select1st<std::pair<const
std::basic_string<char, std::char_traits<char>,
std::allocator<char> >, std::basic_string<char,
std::char_traits<char>, std::allocator<char> > >
>,std::less<std::basic_string<char,
std::char_traits<char>, std::allocator<char> >
>,std::allocator<std::pair<const
std::basic_string<char, std::char_traits<char>,
std::allocator<char> >, std::basic_string<char,
std::char_traits<char>, std::allocator<char> > > > >:
_M_node_count = 0,
_M_key_compare = {
<binary_function<std::basic_string<char,
std::char_traits<char>, std::allocator<char>
>,std::basic_string<char, std::char_traits<char>,
std::allocator<char> >,bool>> = {<No data fields>}, <No
data fields>}
}
},
m_command_to_data_handle = {
_M_t = {
<_Rb_tree_base<std::pair<const
std::basic_string<char, std::char_traits<char>,
std::allocator<char> >,
int>,std::allocator<std::pair<const
std::basic_string<char, std::char_traits<char>,
std::allocator<char> >, int> > >> = {
<_Rb_tree_alloc_base<std::pair<const
std::basic_string<char, std::char_traits<char>,
std::allocator<char> >,
int>,std::allocator<std::pair<const
std::basic_string<char, std::char_traits<char>,
std::allocator<char> >, int> >,true>> = {
_M_header = 0x0
}, <No data fields>},
members of _Rb_tree<std::basic_string<char,
std::char_traits<char>, std::allocator<char>
>,std::pair<const std::basic_string<char,
std::char_traits<char>, std::allocator<char> >,
int>,std::_Select1st<std::pair<const
std::basic_string<char, std::char_traits<char>,
std::allocator<char> >, int>
>,std::less<std::basic_string<char,
std::char_traits<char>, std::allocator<char> >
>,std::allocator<std::pair<const
std::basic_string<char, std::char_traits<char>,
std::allocator<char> >, int> > >:
_M_node_count = 384,
_M_key_compare = {
<binary_function<std::basic_string<char,
std::char_traits<char>, std::allocator<char>
>,std::basic_string<char, std::char_traits<char>,
std::allocator<char> >,bool>> = {<No data fields>}, <No
data fields>}
}
},
m_command_to_uninstall_data_handle = {
_M_t = {
<_Rb_tree_base<std::pair<const
std::basic_string<char, std::char_traits<char>,
std::allocator<char> >,
int>,std::allocator<std::pair<const
std::basic_string<char, std::char_traits<char>,
std::allocator<char> >, int> > >> = {
<_Rb_tree_alloc_base<std::pair<const
std::basic_string<char, std::char_traits<char>,
std::allocator<char> >,
int>,std::allocator<std::pair<const
std::basic_string<char, std::char_traits<char>,
std::allocator<char> >, int> >,true>> = {
_M_header = 0x0
}, <No data fields>},
members of _Rb_tree<std::basic_string<char,
std::char_traits<char>, std::allocator<char>
>,std::pair<const std::basic_string<char,
std::char_traits<char>, std::allocator<char> >,
int>,std::_Select1st<std::pair<const
std::basic_string<char, std::char_traits<char>,
std::allocator<char> >, int>
>,std::less<std::basic_string<char,
std::char_traits<char>, std::allocator<char> >
>,std::allocator<std::pair<const
std::basic_string<char, std::char_traits<char>,
std::allocator<char> >, int> > >:
_M_node_count = 0,
_M_key_compare = {
<binary_function<std::basic_string<char,
std::char_traits<char>, std::allocator<char>
>,std::basic_string<char, std::char_traits<char>,
std::allocator<char> >,bool>> = {<No data fields>}, <No
data fields>}
}
}
}
(gdb) p pathToDll
$11 = (const string &) @0xbfff4e00: {
static npos = 4294967295,
_M_dataplus = {
<allocator<char>> = {<No data fields>},
members of _Alloc_hider:
_M_p = 0x1804e4c
"/Users/hanwen/src/gub/target/local/system/usr/share/nsis/Plugins/AdvSplash.dll"
},
static _S_empty_rep_storage = {0, 0, 0, 0}
}
(gdb)

Discussion

  • Amir Szekely

    Amir Szekely - 2006-05-03
    • labels: 458220 --> Build System
    • assigned_to: nobody --> kichik
     
  • Amir Szekely

    Amir Szekely - 2006-05-03

    Logged In: YES
    user_id=584402

    Can you attach the script or preferably the smallest script
    that reproduces this?

     
  • Han-Wen Nienhuys

    Logged In: YES
    user_id=161998

    hi,

    /dev/null is the smallest script. It breaks before reading
    the script.

     
  • Amir Szekely

    Amir Szekely - 2006-05-03

    Logged In: YES
    user_id=584402

    Thanks, fixed.

    One line patch:

    --- F:\Temp\WinTemp\TCVa0ed.tmp\Platform.1.23.h Wed May 03
    18:44:32 2006
    +++ F:\Temp\WinTemp\TCVa0ed.tmp\Platform.1.24.h Wed May 03
    18:44:53 2006
    @@ -668,6 +668,7 @@
    WORD e_res2[10];
    LONG e_lfanew;
    } IMAGE_DOS_HEADER,*PIMAGE_DOS_HEADER;
    +# pragma pack()
    # pragma pack(4)
    typedef struct _IMAGE_FILE_HEADER {
    WORD Machine;

     
  • Amir Szekely

    Amir Szekely - 2006-05-03
    • status: open --> closed-fixed
     
  • Han-Wen Nienhuys

    Logged In: YES
    user_id=161998

    thanks! that was fast!
    it's packaging right now.

     

Log in to post a comment.