FreeRDP/FreeRDP — Issue #345: segfault if known_hosts contains values
Author: wfragakis
Created: 2012-01-16 14:13:05+00:00
State: open

Using a freshly compiled version of freerdp (1/16/12), I get a segfault if ~/.freerdp/known_hosts has any values stored.
Running on Fedora 14
cmake: cmake -DCMAKE_BUILD_TYPE=Debug -DWITH_SSE2=ON -DWITH_CUPS=OFF -DWITH_ALSA=OFF .

Erasing all values in ~/.freerdp/known_hosts permits log in without issue but I'm asked to accept certificates again.

Connecting to WinServer 2008r2. Using NLA and load-balanced app servers so I have to store at least two values. Leaving any one or all values triggers segfault.

alt.foo is the application server (redirected after initial authentication - if that makes sense)

xfreerdp -u user -d domain -g 1500x900 foo.com
connected to foo.com:3389
Password:
pduType bad
connected to alt_ip:3389
Certificate details:
Subject: CN = alt.foo.com
Issuer: CN = alt.foo.com
Thumbprint:blanked
The above X.509 certificate could not be verified, possibly because you do not have the CA certificate in your certificate store, or the certificate has expired. Please look at the documentation on how to create local certificate store for a private CA.
Do you trust the above certificate? (Y/N) y
transport_check_fds: protocol error, not a TPKT or Fast Path header.
0000 41 00 30 00 32 00 00 00 69 00 65 00 31 00 32 00 A.0.2...i.e.1.2.
[etc]

successful log in looks like;
xfreerdp -u user -d domain -g 1500x900 foo.com
connected to foo:3389
Password:
Certificate details:
Subject: CN = foo.com
Issuer: CN = foo.com
Thumbprint:blanked
The above X.509 certificate could not be verified, possibly because you do not have the CA certificate in your certificate store, or the certificate has expired. Please look at the documentation on how to create local certificate store for a private CA.
Do you trust the above certificate? (Y/N) y
pduType bad
connected to alt_ip:3389
Certificate details:
Subject: CN = alt.foo.com
Issuer: CN = alt.foo.com
Thumbprint: blanked
The above X.509 certificate could not be verified, possibly because you do not have the CA certificate in your certificate store, or the certificate has expired. Please look at the documentation on how to create local certificate store for a private CA.
Do you trust the above certificate? (Y/N) Do you trust the above certificate? (Y/N) y

thanks,
William