--- parser3/ChangeLog 2021/03/29 02:05:12 1.166 +++ parser3/ChangeLog 2024/09/09 02:05:15 1.196 @@ -1,3 +1,634 @@ +2024-09-07 moko + + * src/: classes/curl.C, classes/string.C, classes/table.C, + include/pa_array.h, main/execute.C, main/pa_dictionary.C, + main/pa_http.C, main/pa_sql_driver_manager.C, + main/pa_stylesheet_manager.C, main/pa_table.C, types/pa_vclass.C, + types/pa_vmethod_frame.C, types/pa_vstateless_class.C, + types/pa_vtable.C, types/pa_wcontext.C: Array::Iterator unified + with Hash::Iterator, has_next() replaced with operator bool + (related to feature #930) + + * src/: classes/string.C, include/pa_array.h, main/pa_http.C, + main/pa_table.C, types/pa_vclass.C, types/pa_vmethod_frame.C, + types/pa_vstateless_class.C: Array class extended, + Array::Iterator added and used (related to feature #930) + +2024-08-26 moko + + * src/targets/cgi/parser3.C: under Windows back_slashes_to_slashes + should be used on argv[0] as well to match document root. + +2024-08-25 moko + + * src/main/pa_request.C: be more specific + + * src/targets/cgi/parser3.C: parser3 t.html now behaves identically + to /usr/bin/parser3 t.html in terms of /etc/parser3/auto.p load + (fixes bug #1244) + + * src/targets/cgi/parser3.C: avoid "parser allready configured" + exception when ./parser3.cgi is used; rsplit(..., '/') || + rsplit(..., '\\') is not correct when / and \ are mixed in path + + * src/targets/cgi/parser3.C: full_disk_path now uses pa_strcat() + +2024-07-24 moko + + * src/: include/pa_config_includes.h, lib/gd/gifio.C, + main/execute.C, main/pa_string.C: Warning war: clang changed + -Wdeprecated-register warning to -Wregister, it's easier to + remove all register vars then continue this fight. :) + + * src/main/: compile.y, compile.tab.C: warning war: register + removed + +2024-07-14 moko + + * src/targets/cgi/pa_sapi_info.h: When accessing $env:name, + checking the HTTP request environment; if the variable is not + present, checking the web server process environment (implements + feature #1242) + +2024-05-26 moko + + * tests/: 195.html, 229.html, results/096.processed, + results/097.processed, results/158.processed, + results/186.processed, results/273.processed, + results/293.processed, results/317.processed, + results/389.processed, results/402.processed: tests updated as + single quote now escaped with ' in HTML tainting mode + (related to feature #1241) + + * src/main/untaint.C: single quote now escaped with ' in HTML + tainting mode (implements feature #1241) + + * tests/results/: 020.processed, 021.processed, 026.processed, + 042.processed, 043.processed, 057.processed, 110.processed, + 115.processed, 116.processed, 117.processed, 118.processed, + 119.processed, 120.processed, 125.processed, 126.processed, + 128.processed, 130.processed, 131.processed, 132.processed, + 133.processed, 135.processed, 136.processed, 138.processed, + 139.processed, 140.processed, 145.processed, 150.processed, + 151.processed, 165.processed, 174.processed, 181.processed, + 182.processed, 192.processed, 193.processed, 201.processed, + 213.processed, 224.processed, 226.processed, 230.processed, + 239.processed, 240.processed, 244.processed, 253.processed, + 254.processed, 261.processed, 264.processed, 269.processed, + 274.processed, 275.processed, 288.processed, 294.processed, + 296.processed, 303.processed, 306.processed, 307.processed, + 308.processed, 311.processed, 312.processed, 314.processed, + 315.processed, 316.processed, 320.processed, 323.processed, + 324.processed, 325.processed, 328.processed, 330.processed, + 332.processed, 333.processed, 337.processed, 338.processed, + 341.processed, 342.processed, 343.processed, 344.processed, + 345.processed, 348.processed, 352.processed, 356.processed, + 357.processed, 363.processed, 364.processed, 368.processed, + 372.processed, 373.processed, 376.processed, 378.processed, + 379.processed, 385.processed, 386.processed, 387.processed, + 389.processed, 390.processed, 395.processed, 397.processed, + 398.processed, 399.processed, 404.processed, 406.processed, + 413.processed, 414.processed, 420.processed, 421.processed, + 424.processed, auto.p: Type -> Exception type for readability + + * tests/: 119.html, 165.html, 175.html, 192.html, 213.html, + 217.html, 230.html, 240.html, 298.html, 380.html, 415.html, + results/119.processed, results/165.processed, + results/175.processed, results/192.processed, + results/213.processed, results/217.processed, + results/230.processed, results/240.processed, + results/298.processed, results/380.processed, + results/415.processed: try-catch, try-catch-comment used + +2024-05-21 moko + + * tests/: 169.html, 180.html, 195.html, 224.html, 246.html, + results/180.processed, results/195.processed, + results/224.processed, results/auto.p: @try-catch-comment added + and used + + * tests/: 175.html, 256.html, 269.html, 283.html, 341.html, + 415.html, results/269.processed, results/283.processed, + results/auto.p: more tests are updated to prepare for apostrophe + escaping in HTML tainting + + * tests/results/: 181.processed, 294.processed, 296.processed, + 315.processed, 379.processed, 389.processed, auto.p: + $exception.comment printed as-is for whitespace reporting and to + prepare for apostrophe escaping in HTML mode + +2024-05-11 moko + + * tests/: 099.html, 100.html, results/099.processed, + results/100.processed: a test for non-UTF-8 filename* added + (related to feature #1240) + + * tests/: 293.html, results/293.processed: tainting modes tests + added + + * tests/results/: 099.processed, 100.processed, 205.processed, + 309.processed, 310.processed, 419.processed: tests results + updated after filename* added (related to feature #1240) + + * src/: include/pa_common.h, main/pa_request.C: The filename* + parameter was added to the Content-Disposition header to conform + with RFC 6266, with code provided by Sumo (implements feature + #1240) + +2024-05-10 moko + + * src/main/pa_http.C: Testing shows that TCP_NODELAY has no + positive performance effect in our case + +2024-03-27 moko + + * src/lib/pcre/pcre_internal.vcproj: pa_config_includes.h used + (related to feature #1236) + +2024-03-15 moko + + * tests/: 413.html, results/413.processed: test for object still + can be used as file parameter (related to bug #1218) + + * src/types/: pa_vobject.C, pa_vobject.h: regression fix: object + still can be used in file context (fixes bug #1218) + +2024-03-14 moko + + * src/include/pa_string.h: ArrayString get() null result assert + also added (related to bug #1238) + + * src/types/: pa_vstring.h, pa_vtable.C: VString() optimized; + VString::empty() used instead of new VString() + +2024-03-12 moko + + * tests/: 379-curl.html, 379.html, results/379-curl.processed, + results/379.processed: test added for cookie without value + (related to bug #1238) + + * src/include/pa_string.h: In assertions enabled mode, ArrayString + values are now required to be non-null (related to bug #1238) + + * src/main/pa_http.C: cookies without value are now parsed + correctly (fixed bug #1238) + +2024-03-11 moko + + * tests/run_parser.sh: for better error reporting + +2023-12-30 moko + + * tests/: 038.html, results/038.processed: test for atan2 added + +2023-12-29 moko + + * src/classes/math.C: atan2(y,x) math function added + +2023-12-14 moko + + * tests/212.html: pcre2 compatibility (related to feature #1236) + + * tests/: 425.html, results/425.processed: test for pcre/pcre2 + exceptions and behavour added (related to feature #1236) + +2023-12-13 moko + + * buildall: by default parser is now bundled with pcre2 10.42, + --without-pcre2 option added to build with pcre-8.45 (related to + feature #1236) + +2023-12-12 moko + + * configure.ac, src/include/pa_config_auto.h.in: pcre2 library + support added (implements feature #1236) + + * src/: include/pa_charset.h, include/pa_config_includes.h, + lib/pcre/pa_pcre_internal.h, lib/pcre/pa_pcre_valid_utf8.c, + main/pa_common.C, main/pa_globals.C, types/pa_vregex.C, + types/pa_vregex.h: Adopted patch from Yavor Doganov + to add pcre2 library support (implements feature + #1236) + +2023-11-28 moko + + * src/include/pa_config_includes.h: warnings war continues + + * src/include/pa_config_includes.h: warning war + + * tests/: 424.html, results/424.processed: tests for '+' and '-' + number strings, whitespace and sign in exception messages + (related to bug #1234) + +2023-11-26 moko + + * tests/: 274.html, results/224.processed, results/274.processed: + tests for date double, int, bool added (related to feature #1235) + + * src/: classes/date.C, types/pa_vdate.h: double,int,bool methods + added for date class (implements feature #1235) + +2023-11-23 moko + + * src/: classes/math.C, include/pa_string.h, main/pa_string.C: '+' + and '-' strings are no longer can be treated as number 0, + exception thrown (fixes bug #1234) + +2023-11-18 moko + + * src/include/pa_types.h: minor + + * src/include/pa_dir.h: MAXPATH in UTF-16 chars, not bytes + + * tests/: 389.html, results/389.processed: error messages for some + OS differs a bit, reducing failing tests for them + +2023-11-17 moko + + * tests/: 423.html, results/423.processed: test for optional + @auto[] inheritance added (related to feature #1233) + + * src/: include/pa_request.h, main/execute.C, main/pa_request.C, + types/pa_vstateless_class.C: optional @auto[] inheritance + implemented if defined with two args (path, class name) + (implements feature #1233) + + * src/: classes/double.C, classes/int.C, classes/math.C, + include/pa_random.h, include/pa_types.h, main/pa_common.C, + types/pa_vdouble.h, types/pa_vint.h: clip2int,clip2uint added to + sync double->int overflow behavour under different architectures + (fixes bug #1232) + + * tests/: 422.html, results/422.processed: int clipping added + +2023-11-16 moko + + * tests/: 422.html, results/422.processed: test for int and uint + overflow in ^n.format[d/u/x] + + * src/classes/math.C: bugfix: crc32 should not be negative (under + Apple M1 when negative double converts to uint the result is 0) + and crc32 should be 32 bits + + * src/main/pa_common.C: avoid (uint) conversion as + on Apple M1 it's 0 + + * src/classes/file.C: bugfix: crc32 should not be negative (under + Apple M1 when negative double converts to uint the result is 0) + and crc32 should be 32 bits + +2023-10-07 moko + + * src/: main/execute.C, types/pa_vdate.h: volatile added to sync + behavour with other OP_NUM_*, related to bug #1230 + +2023-10-06 moko + + * tests/: 338.html, results/338.processed: test for bug #1230 added + + * src/: main/execute.C, types/pa_vdate.h: force double operands to + be converted to double to avoid 80 bit operations in x87 mode + (fixes bug #1230) + +2023-10-05 moko + + * tests/420.html: add feature FEATURE_GET_ELEMENT4CALL disabled + compatibility + + * tests/337.html: 2work without FEATURE_GET_ELEMENT4CALL + + * tests/: 421.html, results/421.processed: test to cover all + classes and objects nonexistent method and field exceptions + (related to feature #1080 and #1227) + + * tests/results/: 182.processed, 324.processed: undefined method -> + method not found exception (related to feature #1080) + + * src/types/: pa_vbool.h, pa_vconsole.h, pa_vdouble.h, pa_vint.h, + pa_vregex.C, pa_vstateless_object.h: + VSimple_stateless_object, + "element can not be fetched from" for them, "field not found" for + all other types (related to bug #1227) + +2023-10-03 moko + + * src/types/pa_vstateless_class.h: "Source: , Comment: + method not found" exception now thrown for static calls + instead of "undefined method" without class name (related to + feature #1080) + +2023-10-02 moko + + * src/types/: pa_vdouble.h, pa_vhash.h, pa_vint.h, pa_vobject.C, + pa_vstateless_object.h, pa_vstring.h, pa_vtable.C: "Source: + , Comment: method not found" exception now + thrown for all dynamic objects instead of "undefined method" + without class name (implements feature #1080) + +2023-10-01 moko + + * src/classes/json.C: we don't have a dynamic json object. + +2023-09-28 moko + + * tests/: 420.html, results/261.processed, results/420.processed: + tests updated after bug #1228 fix reverted + + * src/types/pa_vstring.h: revering fix for bug #1228, as empty or + whitespace string is hash compatible, so we don't want $s.key to + return a junction + + * tests/: 261.html, 420.html, results/261.processed, + results/420.processed: test for bug #1227 added, test updated + after bug #1228 fixed + + * src/types/: pa_vdouble.h, pa_vint.h: $int.field and $double.field + now throws exception as $non-empty-string.field (fixes bug #1227) + + * src/types/pa_vstring.h: allow $string.method access (fixes bug + #1228) + +2023-09-26 moko + + * AUTHORS, aclocal.m4, configure, src/classes/bool.C, + src/classes/classes.C, src/classes/classes.awk, + src/classes/classes.h, src/classes/curl.C, src/classes/date.C, + src/classes/double.C, src/classes/file.C, src/classes/form.C, + src/classes/hash.C, src/classes/hashfile.C, src/classes/image.C, + src/classes/inet.C, src/classes/int.C, src/classes/json.C, + src/classes/mail.C, src/classes/math.C, src/classes/memcached.C, + src/classes/memory.C, src/classes/op.C, src/classes/reflection.C, + src/classes/regex.C, src/classes/response.C, + src/classes/string.C, src/classes/table.C, src/classes/void.C, + src/classes/xdoc.C, src/classes/xnode.C, src/classes/xnode.h, + src/include/pa_array.h, src/include/pa_base64.h, + src/include/pa_cache_managers.h, src/include/pa_charset.h, + src/include/pa_charsets.h, src/include/pa_common.h, + src/include/pa_config_fixed.h, src/include/pa_config_includes.h, + src/include/pa_dictionary.h, src/include/pa_dir.h, + src/include/pa_exception.h, src/include/pa_exec.h, + src/include/pa_globals.h, src/include/pa_hash.h, + src/include/pa_http.h, src/include/pa_memory.h, + src/include/pa_opcode.h, src/include/pa_operation.h, + src/include/pa_os.h, src/include/pa_pool.h, + src/include/pa_random.h, src/include/pa_request.h, + src/include/pa_request_charsets.h, src/include/pa_request_info.h, + src/include/pa_sapi.h, src/include/pa_socks.h, + src/include/pa_sql_connection.h, + src/include/pa_sql_driver_manager.h, src/include/pa_stack.h, + src/include/pa_string.h, src/include/pa_stylesheet_connection.h, + src/include/pa_stylesheet_manager.h, src/include/pa_symbols.h, + src/include/pa_table.h, src/include/pa_threads.h, + src/include/pa_types.h, src/include/pa_uue.h, + src/include/pa_xml_exception.h, src/include/pa_xml_io.h, + src/lib/gd/gif.C, src/lib/gd/gif.h, src/lib/gd/gifio.C, + src/lib/ltdl/configure, src/lib/md5/pa_md5.h, + src/lib/md5/pa_md5c.c, src/lib/memcached/pa_memcached.C, + src/lib/memcached/pa_memcached.h, src/lib/punycode/pa_idna.c, + src/lib/punycode/pa_idna.h, src/lib/sdbm/pa_file_io.C, + src/lib/sdbm/pa_strings.C, src/lib/smtp/comms.C, + src/lib/smtp/smtp.C, src/lib/smtp/smtp.h, src/main/compile.C, + src/main/compile.tab.C, src/main/compile.y, + src/main/compile_tools.C, src/main/compile_tools.h, + src/main/execute.C, src/main/pa_base64.C, + src/main/pa_cache_managers.C, src/main/pa_charset.C, + src/main/pa_charsets.C, src/main/pa_common.C, + src/main/pa_dictionary.C, src/main/pa_dir.C, + src/main/pa_exception.C, src/main/pa_exec.C, + src/main/pa_globals.C, src/main/pa_http.C, src/main/pa_memory.C, + src/main/pa_os.C, src/main/pa_pool.C, src/main/pa_random.C, + src/main/pa_request.C, src/main/pa_socks.C, + src/main/pa_sql_driver_manager.C, src/main/pa_string.C, + src/main/pa_stylesheet_connection.C, + src/main/pa_stylesheet_manager.C, src/main/pa_symbols.C, + src/main/pa_table.C, src/main/pa_threads.C, src/main/pa_uue.C, + src/main/pa_xml_exception.C, src/main/pa_xml_io.C, + src/main/untaint.C, src/main/helpers/simple_folding.pl, + src/sql/pa_sql_driver.h, src/targets/apache/mod_parser3.c, + src/targets/apache/mod_parser3_core.C, + src/targets/apache/pa_httpd.h, src/targets/cgi/parser3.C, + src/targets/isapi/parser3isapi.C, src/types/pa_junction.h, + src/types/pa_method.h, src/types/pa_property.h, + src/types/pa_value.C, src/types/pa_value.h, src/types/pa_vbool.h, + src/types/pa_vcaller_wrapper.h, src/types/pa_vclass.C, + src/types/pa_vclass.h, src/types/pa_vcode_frame.h, + src/types/pa_vconsole.h, src/types/pa_vcookie.C, + src/types/pa_vcookie.h, src/types/pa_vdate.C, + src/types/pa_vdate.h, src/types/pa_vdouble.h, + src/types/pa_venv.C, src/types/pa_venv.h, src/types/pa_vfile.C, + src/types/pa_vfile.h, src/types/pa_vform.C, src/types/pa_vform.h, + src/types/pa_vhash.C, src/types/pa_vhash.h, + src/types/pa_vhashfile.C, src/types/pa_vhashfile.h, + src/types/pa_vimage.C, src/types/pa_vimage.h, + src/types/pa_vint.h, src/types/pa_vjunction.C, + src/types/pa_vjunction.h, src/types/pa_vmail.C, + src/types/pa_vmail.h, src/types/pa_vmath.C, src/types/pa_vmath.h, + src/types/pa_vmemcached.C, src/types/pa_vmemcached.h, + src/types/pa_vmemory.h, src/types/pa_vmethod_frame.C, + src/types/pa_vmethod_frame.h, src/types/pa_vobject.C, + src/types/pa_vobject.h, src/types/pa_vregex.C, + src/types/pa_vregex.h, src/types/pa_vrequest.C, + src/types/pa_vrequest.h, src/types/pa_vresponse.C, + src/types/pa_vresponse.h, src/types/pa_vstateless_class.C, + src/types/pa_vstateless_class.h, + src/types/pa_vstateless_object.h, src/types/pa_vstatus.C, + src/types/pa_vstatus.h, src/types/pa_vstring.C, + src/types/pa_vstring.h, src/types/pa_vtable.C, + src/types/pa_vtable.h, src/types/pa_vvoid.C, + src/types/pa_vvoid.h, src/types/pa_vxdoc.C, src/types/pa_vxdoc.h, + src/types/pa_vxnode.C, src/types/pa_vxnode.h, + src/types/pa_wcontext.C, src/types/pa_wcontext.h, + src/types/pa_wwrapper.h: copyright, authors actualized + +2023-08-20 moko + + * tests/: 141.html, results/141.processed: test for ^math:uuid7[] + commited (related to feature #1219) + +2023-08-16 moko + + * src/main/pa_random.C: replaced clock precision with monotonicity + counter, good for Windows version with low clock frequency + (related to feature #1229) + +2023-08-15 moko + + * src/: main/pa_random.C, types/pa_vstatus.C: win32 compatibility + fixes related to feature #1229 + + * src/: classes/math.C, include/pa_random.h, main/pa_random.C, + types/pa_vstatus.C: ^math:uuid7 added, code provided by Sumo + (implements feature #1229) + +2023-08-02 moko + + * tests/: results/417.processed, 417.html: test for empty string + match after last char added (related to bug #1224) + + * src/main/pa_string.C: avoid prestart++ after last char on zero + length match (related to bug #1224) + +2022-11-22 moko + + * tests/: 419.html, results/419.processed: test for L_URI and path + removeal from filename added (related to bug #1204) + + * src/main/pa_request.C: bugfix: pa_filename was lost in 1.394 + commit (related to bug #1204), L_HTTP_HEADER is incorrect for + attribute value, L_URI should be used + +2022-09-21 moko + + * src/targets/cgi/parser3.C: more clear error messages + + * src/targets/cgi/parser3.C: only SAPI_Info_CGI can read POST, + SAPI_Info will return 0 in read_post and post_size != + content_length will be thrown + +2022-08-23 moko + + * src/types/pa_vmail.C: .tables addes as .raw contains only last + header value + +2022-08-22 moko + + * tests/: 418.html, results/418.processed: test for + ^hash_a.intersection[hash_b; $.order[self|arg] ] added (related + to #1225) + + * src/classes/hash.C: keep old behavoir by default + + * src/classes/hash.C: ^hash_a.intersection[hash_b; + $.order[self|arg] ] added (implements #1215) + +2022-03-21 moko + + * src/main/pa_charset.C: bugfix: +static xml_encoding_handlers as + xmlInitCharEncodingHandlers is called in libxml static + initializers before gc_substitute_memory_management_functions in + pa_globals and thus gc may not see reference to our + xmlCharEncodingHandler and free it. + +2022-01-26 moko + + * src/targets/cgi/parser3.C: argv[0] -> parser3_filespec + +2021-12-28 moko + + * tests/: 417.html, results/417.processed: test for empty string + match added (related to bug #1224) + + * src/main/pa_string.C: empty string match now works (fixes bug + #1224) + +2021-12-24 moko + + * tests/: 415_dir/29.p, results/415.processed: yet another test + +2021-12-23 moko + + * src/: classes/table.C, main/pa_request.C: warnings war + + * src/: include/pa_common.h, include/pa_http.h, main/pa_common.C, + main/pa_http.C, targets/cgi/parser3.C: MSVC SOCKET warnings war + +2021-12-21 moko + + * tests/: 416.html, results/416.processed: test for ^break[] in + ^hash/table.select[] (related to feature #1222) + + * src/classes/: hash.C, table.C: ^break[] support for + ^hash/table.select[] (implements feature #1222) + +2021-11-30 moko + + * src/targets/cgi/parser3.C: default sock_ready interval changed to + 0.5 sec + +2021-11-10 moko + + * tests/results/415.processed: more syntax errors tests added + + * tests/415_dir/: 20.p, 21.p, 22.p, 23.p, 24.p, 25.p, 26.p, 27.p, + 28.p: minor syntax error tests + + * src/main/pa_exception.C: pa_strdup added for compatibility + + * src/classes/curl.C: hint to call ^curl:options[ + $.library[correct.libcurl.so.name] ] added if default load fails. + +2021-11-09 moko + + * src/main/compile.y: error message can be on stack + + * src/main/pa_xml_io.C: strcat replaced with pa_strcat + + * src/main/pa_charset.C: memcpy is more correct and efficient in + this case then strncpy + + * src/: classes/image.C, types/pa_vrequest.C: pa_strdup used + instead of strcpy where possible + + * src/: classes/op.C, main/pa_exception.C: "%s" format now can be + used to avoid MAX_STRING limit in Exception comment + + * tests/results/415.processed: compiler exceptions are no longer + limited to MAX_STRING + + * src/main/: compile.y, compile_tools.h: Parse_control uses const + char * instead of fixed buffer + + * tests/: 415.html, 415_dir/01.p, 415_dir/02.p, 415_dir/03.p, + 415_dir/04.p, 415_dir/05.p, 415_dir/06.p, 415_dir/07.p, + 415_dir/08.p, 415_dir/09.p, 415_dir/10.p, 415_dir/11.p, + 415_dir/12.p, 415_dir/13.p, 415_dir/14.p, 415_dir/15.p, + results/415.processed: tests for parser.compile exceptions added + +2021-11-08 moko + + * src/: classes/math.C, include/pa_common.h, main/compile.y, + main/pa_common.C, main/pa_dir.C, main/pa_exec.C, main/pa_http.C, + targets/cgi/parser3.C, targets/isapi/parser3isapi.C, + types/pa_vdate.C: pa_strncpy added ans used to avoid strncpy + drawbacks + +2021-11-06 moko + + * src/classes/inet.C: ^inet:hostname[] added by sumo@ patch + (implements feature #1219) + + * tests/: 414.html, results/414.processed: test for + ^hash.rename[from;to] added (related to feature #1144) + +2021-11-05 moko + + * src/classes/hash.C: ^hash.rename[ $.from[to] ... ] support added + (related to feature #1144) + +2021-11-04 moko + + * src/: classes/hash.C, include/pa_hash.h: ^hash.rename[from;to] + added (implements feature #1144) + +2021-10-19 moko + + * tests/: 413.html, results/413.processed: test for hash no longer + is accepted as file parameter (related to bug #1218) + + * src/: classes/curl.C, classes/file.C, classes/image.C, + classes/math.C, classes/xdoc.C, types/pa_value.C, + types/pa_value.h, types/pa_vfile.h, types/pa_vmail.C: hash no + longer is accepted as file parameter (fixes bug #1218) + +2021-07-19 moko + + * src/targets/cgi/parser3.C: waitpid in file::exec returned "No + child processes" when SIGCHLD was SIG_IGN (fixes bug #1215) + +2021-04-16 moko + + * src/types/pa_vmail.C: message can be null when e-mail is broken, + processing it leads to assertions. + 2021-03-25 moko * tests/: 412.html, results/412.processed: test to demonstrate bug