hwangcc23 40543d42d5 Fix double free
In the mainloop function, calling __skynet_free__ frees the pointer which may has already been freed in __push_socket_data__.

mainloop(struct skynet_context * context, void * ud, int type, int session, uint32_t source, const void * msg, size_t sz) {
        struct harbor * h = ud;
        switch (type) {
        case PTYPE_SOCKET: {
                const struct skynet_socket_message * message = msg;
                switch(message->type) {
                case SKYNET_SOCKET_TYPE_DATA:
                        push_socket_data(h, message);
                        skynet_free(message->buffer);
                        // skip...

To fix this potential double-free bug, clear the pointer message->buffer in __push_socket_data__ after the pointer is freed.
2017-08-23 23:43:20 +08:00
2017-07-18 11:27:28 +08:00
2017-08-22 09:41:24 +08:00
2017-08-19 10:20:05 +08:00
2017-08-23 23:43:20 +08:00
2014-04-21 08:47:45 +08:00
2017-07-18 11:55:57 +08:00
2017-07-28 11:35:42 +08:00
2017-06-06 16:03:59 +08:00
2014-06-18 15:10:21 +08:00
2017-08-07 15:49:50 +08:00

Skynet

Skynet is a lightweight online game framework, and it can be used in many other fields.

Build

For Linux, install autoconf first for jemalloc:

git clone https://github.com/cloudwu/skynet.git
cd skynet
make 'PLATFORM'  # PLATFORM can be linux, macosx, freebsd now

Or you can:

export PLAT=linux
make

For FreeBSD , use gmake instead of make.

Test

Run these in different consoles:

./skynet examples/config	# Launch first skynet node  (Gate server) and a skynet-master (see config for standalone option)
./3rd/lua/lua examples/client.lua 	# Launch a client, and try to input hello.

About Lua version

Skynet now uses a modified version of lua 5.3.4 ( https://github.com/ejoy/lua/tree/skynet ) for multiple lua states.

You can also use official Lua versions, just edit the Makefile by yourself.

How To Use (Sorry, Only in Chinese now)

Description
No description provided
Readme MIT 69 MiB
Languages
C 73.2%
Lua 23.5%
HTML 2.4%
Makefile 0.9%