Guest User

Untitled

a guest
Oct 22nd, 2017
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.55 KB | None | 0 0
  1. Index: sapi/cli/php_cli_server.c
  2. ===================================================================
  3. --- sapi/cli/php_cli_server.c (revision 312567)
  4. +++ sapi/cli/php_cli_server.c (working copy)
  5. @@ -1799,13 +1799,28 @@
  6. }
  7.  
  8. {
  9. - char *p = strchr(host, ':');
  10. - if (p) {
  11. + char *p = strrchr(host, ':');
  12. + char *end = strchr(host, ']');
  13. + if (p && (end == NULL || p > end)) {
  14. *p++ = '\0';
  15. port = strtol(p, &p, 10);
  16. + if (port < 0 || port > 65535) {
  17. + printf(stderr, "Invalid built-in web-server addr:port argument\n");
  18. + return FAILURE;
  19. + }
  20. }
  21. }
  22.  
  23. + if (*host == '[' && host[strlen(host)-1] == ']') {
  24. + char v6address[40];
  25. + int success = sscanf(host, "\[%39[^]]\]", v6address);
  26. + if (success != 1) {
  27. + php_cli_server_logf("Failed to listen on %s:%d (reason: %s)" TSRMLS_CC, host, port, errstr ? errstr: "?");
  28. + return FAILURE;
  29. + }
  30. + host = pestrdup(v6address, 1);
  31. + }
  32. +
  33. server_sock = php_network_listen_socket(host, &port, SOCK_STREAM, &server->address_family, &server->socklen, &errstr TSRMLS_CC);
  34. if (server_sock == SOCK_ERR) {
  35. php_cli_server_logf("Failed to listen on %s:%d (reason: %s)" TSRMLS_CC, host, port, errstr ? errstr: "?");
Add Comment
Please, Sign In to add comment