Release of nginx 1.17.9 and njs 0.3.9

Formed master branch release nginx 1.17.9, within which the development of new features continues (in a parallel supported stable branch 1.16 only changes related to the elimination of serious errors and vulnerabilities are made).

All changes:

  • It is forbidden to specify multiple lines "Host" in
    request header;

  • Fixed bug where nginx was ignoring extra lines
    "Transfer-Encoding" in the request header;

  • Fixes have been made to prevent socket leaks when using the HTTP/2 protocol;
  • Fixed crash (segmentation fault) of the workflow, which manifested itself when using OCSP stapling;
  • Corrections have been made to the ngx_http_mp4_module module;
  • Fixed an issue where redirecting 494 errors using the 'error_page' directive could return a 494 response instead of 400;
  • Fixed socket leaks when using subrequests in the njs module and the aio directive.

Additionally, it can be noted issue njs 0.3.9, a JavaScript interpreter for the nginx web server. The njs interpreter implements the ECMAScript standards and allows you to extend nginx's ability to process requests using scripts in the configuration. Scripts can be used in a configuration file to define advanced request processing logic, generate a configuration, dynamically generate a response, modify a request/response, or quickly create problem-solving stubs in web applications.

In the new release, the njs module added support for detached requests mode in r.subrequest(). Responses to detached subrequests are ignored. Unlike normal subrequests, a detached subrequest can be created inside a variable handler. Also:

  • Added Promises API for "fs" module;
  • Functions access(), symlink(), unlink(),
    realpath() and the like;

  • Introduced memory-efficient conventional arrays;
  • Improvements have been made to lexer;
  • Fixed native function mapping in backtraces.
    traces;

  • Fixed callback calls in the "fs" module;
  • Fixed Object.getOwnPropertySymbols();
  • Fixed heap buffer overflow in njs_json_append_string();
  • Corrected encodeURI() and decodeURI() according to the specification;
  • Correction made to Number.prototype.toPrecision();
  • Fixed handling of space argument in JSON.stringify();
  • Fixed JSON.stringify() with Number() and String() objects;
  • Provided escaping of Unicode characters in JSON.stringify() as per
    with specification;

  • Fixed import of non-native modules;
  • A fix has been made to njs.dump() with a Date() instance in the container.

Source: opennet.ru

Add a comment