diff --git a/kernel-src/fs/sockfs.c b/kernel-src/fs/sockfs.c index c35d4b12..df3edbcb 100644 --- a/kernel-src/fs/sockfs.c +++ b/kernel-src/fs/sockfs.c @@ -198,7 +198,6 @@ int sockfs_newsocket(vnode_t **nodep, socket_t *socket) { node->socket = socket; *nodep = vnode; - POLL_INITHEADER(&socket->pollheader); return 0; } diff --git a/kernel-src/io/net/socket.c b/kernel-src/io/net/socket.c index 6ffb99ca..58059a16 100644 --- a/kernel-src/io/net/socket.c +++ b/kernel-src/io/net/socket.c @@ -8,5 +8,11 @@ static socket_t *(*createsocket[])() = { socket_t *socket_create(int type) { __assert(type < sizeof(createsocket) / sizeof(createsocket[0])); - return createsocket[type](); + socket_t *socket = createsocket[type](); + if (socket == NULL) + return NULL; + + POLL_INITHEADER(&socket->pollheader); + + return socket; }