El Jue 27 Ago 2009 15:46:23 Eric J Korpela escribió: > On Thu, Aug 27, 2009 at 11:43 AM, Eric J Korpela wrote: > > Does anyone know what has changed in PROXY_INFO that causes segfaults > > when boinc_get_init_data is called? Did someone change the > > init_data.xml format? If so, is a segfault the best way to react if a > > field is missing? There was a time when the file wasn't required to > > exists at all. > > > > The first stack dump is if init_data.xml doesn't exist. > > > > #0 0x029524ce in std::string::assign () from /usr/lib/libstdc++.so.6 > > #1 0x029525e4 in std::string::operator= () from /usr/lib/libstdc++.so.6 > > #2 0x08116a47 in PROXY_INFO::operator= (this=0x821ead4, > > new_...@0x8264cf4) at proxy_info.cpp:192 > > #3 0x0810e65f in APP_INIT_DATA::copy (this=0x821d600, a...@0x8263820) > > at app_ipc.cpp:102 > > #4 0x0810e7a4 in APP_INIT_DATA::operator= (this=0x821d600, a...@0x8263820) > > at app_ipc.cpp:70 > > #5 0x0810a595 in boinc_get_init_data (app_init_da...@0x821d600) > > at boinc_api.cpp:644 > > #6 0x0804d102 in main (argc=1, argv=0xbfecacb4) at main.cpp:259 > > > > The second is if it does... > > > > #0 0x029524ce in std::string::assign () from /usr/lib/libstdc++.so.6 > > #1 0x029525e4 in std::string::operator= () from /usr/lib/libstdc++.so.6 > > #2 0x08116a47 in PROXY_INFO::operator= (this=0x821ead4, > > new_...@0x8264cf4) at proxy_info.cpp:192 > > #3 0x0810e65f in APP_INIT_DATA::copy (this=0x821d600, a...@0x8263820) > > at app_ipc.cpp:102 > > #4 0x0810e7a4 in APP_INIT_DATA::operator= (this=0x821d600, a...@0x8263820) > > at app_ipc.cpp:70 > > #5 0x0810a595 in boinc_get_init_data (app_init_da...@0x821d600) > > at boinc_api.cpp:644 > > #6 0x0804d102 in main (argc=1, argv=0xbfecacb4) at main.cpp:259 > > Oops the second stack dump. (When app_info.xml does exist) should be > > #1 0x08116c0a in PROXY_INFO::clear (this=0x8264cf4) at proxy_info.cpp:168 > 168 socks_server_name.clear(); > (gdb) where > #0 0x0295212f in std::string::clear () from /usr/lib/libstdc++.so.6 > #1 0x08116c0a in PROXY_INFO::clear (this=0x8264cf4) at proxy_info.cpp:168 > #2 0x08116ef4 in PROXY_INFO::parse (this=0x8264cf4, i...@0xbfbb0810) > at proxy_info.cpp:93 > #3 0x0810d811 in parse_init_data_file (f=0x9cef730, a...@0x8263820) > at app_ipc.cpp:260 > #4 0x0810b442 in boinc_parse_init_data_file () at boinc_api.cpp:598 > #5 0x0804d0f6 in main (argc=1, argv=0xbfbb0994) at main.cpp:258 >
parse_init_data clears the APP_INIT_DATA structure using memset, corrupting the internal structure of the std::string members. -- Nicolas _______________________________________________ boinc_dev mailing list [email protected] http://lists.ssl.berkeley.edu/mailman/listinfo/boinc_dev To unsubscribe, visit the above URL and (near bottom of page) enter your email address.
