httpd

Checkout Tools
  • last updated 1 hour ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
CVE-2017-9788: add unit tests for get_digest_rec()

Including the module source is a dirty hack, but maybe the direct way is

best for now. More functional tests are still TODO.

ap_find_token: add unit tests

Add previously embargoed test case for CVE-2017-7668.

    • ?
    /httpd/branches/httpdunit/test/unit/util.c
Revert new base64 function and tests

This should be trunk-only, not part of the backport branch.

util.c: add a strict Base64 decoding function

ap_pbase64decode_strict() adds to the functionality of

ap_pbase64decode() in two ways:

- the length of the decoded buffer is returned, allowing embedded NULLs

to be retained by the caller

- the input string is strictly checked for Base64 validity, including

correct zero-padding at the end of the string

    • ?
    /httpd/branches/httpdunit/test/unit/base64.c
    • ?
    /httpd/branches/httpdunit/include/httpd.h
    • ?
    /httpd/branches/httpdunit/server/util.c
httpdunit: clean up after ourselves properly

Remove the testcase stubs and object files on `make clean`.

httpdunit: add CMake support for Windows

Add a CMake version of the httpdunit build system. At the moment, the only

annoyance is that CMake doesn't like globbing source files, so the

generator must be re-run whenever test cases are added.

    • ?
    /httpd/branches/httpdunit/CMakeLists.txt
httpdunit: fix check.h on Windows

Check seems to have trouble with type definitions when using a

CMake+Windows toolchain. Include apr.h before check.h to ensure pid_t

exists.

httpdunit: simplify test case generation

Look, a legitimate use of cat!

httpdunit_gen_cases: separate declarations from calls

This gets around strict compiler warnings.

httpdunit: a Check-based unit test suite

Add a unit test suite based on Check:

https://libcheck.github.io/check/

The suite depends on the build system to automatically generate the code

stubs that call every test case.

httpdunit is automatically enabled in the build if configure is able to

find Check via pkg-config. At the moment pkg-config is the only official

(non-deprecated) way to build and link against Check with an autoconf

system, since platforms may distribute Check as a static library.

Note that Check is an LGPL'd library, so we can't distribute test

objects and binaries. Building and running the suite remains optional

and is not required to run the server.

    • ?
    /httpd/branches/httpdunit/test/httpdunit.h
    • ?
    /httpd/branches/httpdunit/Makefile.in
    • ?
    /httpd/branches/httpdunit/build/httpdunit_gen_cases.pl
    • ?
    /httpd/branches/httpdunit/configure.in
    • ?
    /httpd/branches/httpdunit/build/httpdunit_gen_stubs.pl
    • ?
    /httpd/branches/httpdunit/test/httpdunit.c
configure: don't overwrite other_targets when mod_suexec is enabled

Just append to the list.

rules.mk: output directly to target for LT_COMPILE

For source files that exist in another directory, libtool will by

default put the output file in the current working directory instead of

next to the source file. Our build logic would then `touch` an empty

output file in the place where the actual output should have gone.

Replace the touch logic with an explicit -o option to libtool.

    • ?
    /httpd/branches/httpdunit/build/rules.mk.in
Feature branch for a C-based unit test suite.