emscripten-core / emscripten-core/emscripten

websocket_to_posix_socket: Negative length when use getsockname

Open
#20,691 0 comments 0 reactions 1 assignee Claimed by @juj View on GitHub
Dominant language
C++
Stars
27.6k
Forks
3.6k
Avg merge
1d 1h
Merged PRs (30d)
105

Description

When use full POSIX Sockets over WebSocket and call getsockname(), data length is negative.

js side:
```
w:0,t:0x0014c9b4: emscripten_websocket_send_binary(socketId=1,binaryData=1443792,dataLength=-224), data: -224 bytes of binary:, ""
```

proxy server side:
```
Received too small sockets call message! size: 0 bytes, expected at least 8 bytes
```

likely caused by here: https://github.com/emscripten-core/emscripten/blob/00eae746d233099faccc299dd3abc86ae834f837/system/lib/websocket/websocket_to_posix_socket.c#L495 where header (16) + address_len(16) - MAX_SOCKADDR_SIZE(256) = -224

**Version of emscripten/emsdk:**
```
emcc (Emscripten gcc/clang-like replacement + linker emulating GNU ld) 3.1.48 (e967e20b4727956a30592165a3c1cde5c67fa0a8)
clang version 18.0.0 (https://github.com/llvm/llvm-project a54545ba6514802178cf7cf1c1dd9f7efbf3cde7)
Target: wasm32-unknown-emscripten
Thread model: posix
```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.