Skip to content

Stdlib: socket_connect null port ValueError on AF_INET (#30339) - #30369

Merged
PurHur merged 1 commit into
masterfrom
fix/30339-socket-connect-null-port
Aug 11, 2026
Merged

Stdlib: socket_connect null port ValueError on AF_INET (#30339)#30369
PurHur merged 1 commit into
masterfrom
fix/30339-socket-connect-null-port

Conversation

@PurHur

@PurHur PurHur commented Aug 11, 2026

Copy link
Copy Markdown
Owner

Summary

  • AF_INET/AF_INET6 `socket_connect` with null or omitted `$port` throws Zend-shaped `ValueError`.
  • Explicit port `0` still attempts connect; AF_UNIX still allows null/omitted port.
  • Uses `VmMath::parseNullableIntBuiltinArgForFrame` (`?int`, no soft-deprecate).

Closes #30339

php-src reference

  • `ext/sockets/sockets.c` — `PHP_FUNCTION(socket_connect)` null port reject for AF_INET/AF_INET6
  • Implementation: `ext/sockets/socket_connect.php`

Test plan

  • Issue repro Zend vs VM
  • `vendor/bin/phpunit --filter 'SocketConnectNullPortVMTest|SocketConnectSoftNullVMTest'` (5 OK)

Verification

ValueError: socket_connect(): Argument #3 (\$port) cannot be null when the socket type is AF_INET
OK (5 tests, 5 assertions)

Made with Cursor

Treat $port as ?int (Z_PARAM_LONG_OR_NULL); reject null for AF_INET/AF_INET6 like php-src.

Co-authored-by: Cursor <cursoragent@cursor.com>
@PurHur
PurHur merged commit cedc393 into master Aug 11, 2026
1 check failed
@PurHur
PurHur deleted the fix/30339-socket-connect-null-port branch August 11, 2026 20:16
PurHur added a commit that referenced this pull request Aug 11, 2026
…0371)

Re-emit and publish the x86_64-linux helper-runtime corpus so
check-helper-runtime-prelink --strict reports 0 stale (Pillar 1).
Also refresh SocketAtmark/SocketCreate/Memory units that went
stale on rebase onto master (#30365#30369).

Co-authored-by: PurHur <PurHur@users.noreply.github.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Regression: socket_connect(..., null) $port soft-coerces — Zend ValueError AF_INET (ext/sockets/sockets.c)

1 participant