canonical libwebsockets.org websocket library
Find a file
Andy Green 224149ab58 fix ssl reject path for freeing header allocation
If the SSL connection failed before the headers came, we were not
dealing with deallocating the header malloc.  This takes care of it.

Using CyaSSL, we are then valgrind-clean for ssl client and server.

With OpenSSL, there is 88 bytes lost at init that never changes or
gets recovered.  AFAIK there's nothing to do about that.

OpenSSL also blows these during operation

==1059== Conditional jump or move depends on uninitialised value(s)
==1059==    at 0x4A0B131: bcmp (mc_replace_strmem.c:935)
==1059==    by 0x3014CDDBA8: ??? (in /usr/lib64/libcrypto.so.1.0.1c)
==1059==    by 0x3015430852: tls1_enc (in /usr/lib64/libssl.so.1.0.1c)
==1059==    by 0x3015428CEC: ssl3_read_bytes (in /usr/lib64/libssl.so.1.0.1c)
==1059==    by 0x30154264C5: ??? (in /usr/lib64/libssl.so.1.0.1c)
==1059==    by 0x4C3C596: lws_server_socket_service (server.c:153)
==1059==    by 0x4C32C1E: libwebsocket_service_fd (libwebsockets.c:927)
==1059==    by 0x4C33270: libwebsocket_service (libwebsockets.c:1225)
==1059==    by 0x401C84: main (in /usr/bin/libwebsockets-test-server)

However googling around

https://bugs.launchpad.net/ubuntu/+source/openssl/+bug/60021
http://www.openssl.org/support/faq.html#PROG13
(also the next FAQ down)

it seems OpenSSL have a relaxed attitude to this and it's expected.
It's interesting CyaSSL works fine but doesn't have that problem...

Signed-off-by: Andy Green <andy.green@linaro.org>
2013-02-11 21:43:41 +08:00
cmake CMake support + fixed windows build. 2013-02-06 15:49:12 +09:00
lib fix ssl reject path for freeing header allocation 2013-02-11 21:43:41 +08:00
m4 add empty m4 dir as workaround for autoreconf issue 2013-01-15 21:56:12 +08:00
scripts refactor-into-dirs.patch 2010-11-01 09:12:17 +00:00
test-server valgrind client close in a controlled way on SIGINT 2013-02-11 14:33:03 +08:00
win32port remove deprecated vcxproj 2013-02-07 20:25:28 +08:00
.gitignore add static stack analysis 2013-02-10 10:49:15 +08:00
autogen.sh use autogen.sh 2012-10-06 15:17:01 +08:00
changelog valgrind introduce protocol init and destroy user callbacks 2013-02-11 12:05:54 +08:00
CMakeLists.txt Added build instructions for CMake. 2013-02-07 20:24:19 +08:00
config.h.cmake Added some minor changes to CMake build file. 2013-02-06 15:49:12 +09:00
configure.ac stop O2 override 2013-02-11 09:31:43 +08:00
COPYING add-COPYING-lgpl-2.1.patch 2010-11-08 17:12:19 +00:00
INSTALL add-INSTALL.patch 2010-11-12 13:11:50 +00:00
libwebsockets-api-doc.html style cleanup 2013-02-11 17:13:32 +08:00
libwebsockets.pc.in add pkg-config file libwebsockets.pc 2012-10-19 18:26:22 +08:00
libwebsockets.spec uplevel-rpm-spec-to-include-new-extpoll-sample.patch 2011-02-13 09:08:11 +00:00
LICENSE add static linking exception to LICENSE 2013-02-07 23:44:21 +08:00
Makefile.am introduce library version plus git hash 2013-02-01 10:50:15 +08:00
README add README 2013-02-06 16:07:27 +09:00
README.build replace per header mallocs with single malloc 3 level struct 2013-02-11 11:10:57 +08:00
README.coding dont try set per socket keepalive timing on bsds 2013-02-10 09:39:47 +08:00
README.test-apps introduce test echo 2013-01-30 12:28:44 +08:00

This is the libwebsockets C library for lightweight websocket clients and
servers.  For support, visit

 http://libwebsockets.org

and consider joining the project mailing list at

 http://ml.libwebsockets.org/mailman/listinfo/libwebsockets

You can get the latest version of the library from git

http://git.libwebsockets.org
https://github.com/warmcat/libwebsockets

for more information:

README.build      - information on building the library
README.coding     - information for writing code using the library
README.test-apps  - information about the test apps built with the library