Running any of the following:

xfreerdp --no-nla ..
xfreerdp --no-nla --no-tls ..

All result in a segv crash in the current GIT tree on SLES11 SP1.  The 
backtrace in gdb shows it happening in a strlen() in 
nego_send_negotiation_request().

The issue seems to be that in libfreerdp-core/nego.c:void 
nego_send_negotiation_request(rdpNego* nego)

There is:

        if (nego->routing_token != NULL)
        {
                stream_write(s, nego->routing_token->data, 
nego->routing_token->length);
                length += nego->routing_token->length;
        }
        else
        {
                int cookie_length =  strlen(nego->cookie);


And nego->cookie is NULL or not set correctly causing strlen() to die a 
horrible death.

I'm sure of this because if I do something stupid like:

        int cookie_length = 0;

it does the wrong thing, but no longer crashes.  So something isn't setting it 
right.

Any ideas / comments?

- Ben
------------------------------------------------------------------------------
Using storage to extend the benefits of virtualization and iSCSI
Virtualization increases hardware utilization and delivers a new level of
agility. Learn what those decisions are and how to modernize your storage 
and backup environments for virtualization.
http://www.accelacomm.com/jaw/sfnl/114/51434361/
_______________________________________________
Freerdp-devel mailing list
Freerdp-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freerdp-devel

Reply via email to