During long and heavy testruns I encountered seemingly random crashes 
running on Windows 7.
I tracked the problem down to the function

static int win_localinfo(su_localinfo_t const hints[1], su_localinfo_t 
**rresult);

which resides in su_localinfo.c.

If the call to GetAdapterAddresses() fails, the function tries to use 
FormatMessage()
to get an error string to print out.
Unfortunately, the call to FormatMessage() specifies an illegal buffer:

if (!FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER |
                        FORMAT_MESSAGE_FROM_SYSTEM |
                        FORMAT_MESSAGE_IGNORE_INSERTS,
                        NULL,
                        error,
                        MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
                        msg, 0, NULL))
     msg = empty;

It SHOULD be:

if (!FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER |
                        FORMAT_MESSAGE_FROM_SYSTEM |
                        FORMAT_MESSAGE_IGNORE_INSERTS,
                        NULL,
                        error,
                        MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
                        (LPTSTR)&msg, 0, NULL))
     msg = empty;

Earlier in the function it says:

char const* empty = "";
LPTSTR msg = empty;

Calling FormatMessage() and specifying a pointer to empty (assignment)
is obviously illegal as it requires the address to a pointer.


Best regards,
Andreas


------------------------------------------------------------------------------
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140
_______________________________________________
Sofia-sip-devel mailing list
Sofia-sip-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sofia-sip-devel

Reply via email to