Commit Graph

155 Commits

Author SHA1 Message Date
a47ee08073 *) mod_md:
- Enabling ED25519 support and certificate transparency information when
       building with libressl v3.5.0 and newer. Thanks to Giovanni Bechis.
     - MDChallengeDns01 can now be configured for individual domains.
       Thanks to Jérôme Billiras (@bilhackmac) for the initial PR.
     - Fixed a bug found by Jérôme Billiras (@bilhackmac) that caused the challenge
       teardown not being invoked as it should.



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1908080 13f79535-47bb-0310-9956-ffa450edef68
2023-03-05 09:59:34 +00:00
f2b7303efa mod_md v2.4.19 from github sync
*) mod_md: a new directive `MDStoreLocks` can be used on cluster
     setups with a shared file system for `MDStoreDir` to order
     activation of renewed certificates when several cluster nodes are
     restarted at the same time. Store locks are not enabled by default.

     Restored curl_easy cleanup behaviour from v2.4.14 and refactored
     the use of curl_multi for OCSP requests to work with that.
     Fixes <https://github.com/icing/mod_md/issues/293>.



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1903677 13f79535-47bb-0310-9956-ffa450edef68
2022-08-25 14:00:13 +00:00
d07267c793 *) mod_md: update version after release on github
[skip ci]


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1901549 13f79535-47bb-0310-9956-ffa450edef68
2022-06-02 09:40:26 +00:00
4631db0a27 *) mod_md: resurrect r1898962 lost by a change merge.
Thanks to Christophe for catching this.



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1901271 13f79535-47bb-0310-9956-ffa450edef68
2022-05-26 08:10:37 +00:00
75594f2d4a *) mod_md: a logic bug in sending long OCSP HTTP request bodies was fixed.
This did not happen in normal use as request sizes for OSCP queries
     never exceed that length.



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1901230 13f79535-47bb-0310-9956-ffa450edef68
2022-05-25 11:32:52 +00:00
56f80efab8 *) mod_md: handle case in status print when no url is present
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1900887 13f79535-47bb-0310-9956-ffa450edef68
2022-05-14 13:49:05 +00:00
e6e83f275f *) mod_md: the MDCertificateAuthority directive can take more than one URL/name of
an ACME CA. This gives a failover for renewals when several consecutive attempts
     to get a certificate failed.
     A new directive was added: `MDRetryDelay` sets the delay of retries.
     A new directive was added: `MDRetryFailover` sets the number of errored
     attempts before an alternate CA is selected for certificate renewals.



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1900852 13f79535-47bb-0310-9956-ffa450edef68
2022-05-13 11:03:51 +00:00
2115b29968 *) mod_md: fixed a bug leading to failed transfers for OCSP
stapling information when more than 6 certificates needed
     updates in the same run.



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1900628 13f79535-47bb-0310-9956-ffa450edef68
2022-05-06 13:09:46 +00:00
6b5e7d4588 *) mod_md: added support for managing certificates via a
local tailscale demon for users of that secure networking.
     This gives trusted certificates for tailscale  assigned
     domain names in the *.ts.net space.



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1900313 13f79535-47bb-0310-9956-ffa450edef68
2022-04-27 11:48:36 +00:00
533a895c1f *) mod_md: a possible NULL pointer deref was fixed in
the JSON code for persisting time periods (start+end).
     Fixes #282 on mod_md's github.



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1900145 13f79535-47bb-0310-9956-ffa450edef68
2022-04-22 08:45:31 +00:00
80795a9ae2 * Implement full auto status ("key: value" type status output).
Especially not only status summary counts for certificates and
   OCSP stapling but also lists. Auto status format is similar to
   what was used for mod_proxy_balancer.
   [Rainer Jung]



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1900039 13f79535-47bb-0310-9956-ffa450edef68
2022-04-19 14:11:39 +00:00
e76422db42 *) mod_md: fix compiler warning about NULL arg to a %s log. Fixes PR 65955.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1898962 13f79535-47bb-0310-9956-ffa450edef68
2022-03-16 08:28:27 +00:00
cbde30f832 * mod_md) do not interfere with requests to /.well-known/acme-challenge/
resources if challenge type 'http-01' is not configured for a domain.
    Fixes <https://github.com/icing/mod_md/issues/279>.



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1897863 13f79535-47bb-0310-9956-ffa450edef68
2022-02-08 12:18:45 +00:00
711bf3ee18 *) mod_md: the status description in MDomain's JSON, exposed in the
md-status handler (if configure) did sometimes not carry the correct
     message when certificates needed renew.
     [Stefan Eissing]



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1897819 13f79535-47bb-0310-9956-ffa450edef68
2022-02-07 14:40:46 +00:00
3d4eb0926f Fix some typo.
Add some missing spaces spotted here and there to better comply with coding style

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1896409 13f79535-47bb-0310-9956-ffa450edef68
2021-12-26 09:52:25 +00:00
7fd23f82ab * mod_md: install the early config hook with _FIRST, so that
they run before any ssl modules runs get_certificates hooks.



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1895428 13f79535-47bb-0310-9956-ffa450edef68
2021-11-30 15:57:05 +00:00
b1182bb6df * mod_md: resurrection of r1893969 after accidental overwrite in r1894610
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1895287 13f79535-47bb-0310-9956-ffa450edef68
2021-11-24 10:56:20 +00:00
331504f01e *) mod_md: values for External Account Binding (EAB) can
now also be configured to be read from a separate JSON
     file. This allows to keep server configuration permissions
     world readable without exposing secrets.



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1895285 13f79535-47bb-0310-9956-ffa450edef68
2021-11-24 10:13:42 +00:00
e9d2e1c495 * mod_md: EC private key generation for openssl 3.0 in separate
way since the previous code does not work with it. Keeping
   old code for known interop with other *SSL libs.



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1894718 13f79535-47bb-0310-9956-ffa450edef68
2021-11-03 14:29:14 +00:00
51a214821c *) mod_md: adding v2.4.8 with the following changes
- Added support for ACME External Account Binding (EAB).
      Use the new directive `MDExternalAccountBinding` to provide the
      server with the value for key identifier and hmac as provided by
      your CA.
      While working on some servers, EAB handling is not uniform
      across CAs. First tests with a Sectigo Certificate Manager in
      demo mode are successful. But ZeroSSL, for example, seems to
      regard EAB values as a one-time-use-only thing, which makes them
      fail if you create a seconde account or retry the creation of the
      first account with the same EAB.
    - The directive 'MDCertificateAuthority' now checks if its parameter
      is a http/https url or one of a set of known names. Those are
      'LetsEncrypt', 'LetsEncrypt-Test', 'Buypass' and 'Buypass-Test'
      for now and they are not case-sensitive.
      The default of LetsEncrypt is unchanged.
    - `MDContactEmail` can now be specified inside a `<MDomain dnsname>`
      section.
    - Treating 401 HTTP status codes for orders like 403, since some ACME
      servers seem to prefer that for accessing oders from other accounts.
    - When retrieving certificate chains, try to read the repsonse even
      if the HTTP Content-Type is unrecognized.
    - Fixed a bug that reset the error counter of a certificate renewal
      and prevented the increasing delays in further attempts.
    - Fixed the renewal process giving up every time on an already existing
      order with some invalid domains. Now, if such are seen in a previous
      order, a new order is created for a clean start over again.
      See <https://github.com/icing/mod_md/issues/268>
    - Fixed a mixup in md-status handler when static certificate files
      and renewal was configured at the same time.



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1894610 13f79535-47bb-0310-9956-ffa450edef68
2021-10-29 09:04:38 +00:00
7ecfc5b3a8 * Fix memory leak in case of failures to load the private key.
PR: 65620


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1893969 13f79535-47bb-0310-9956-ffa450edef68
2021-10-07 11:55:51 +00:00
00e2ca574f *) mod_md: when MDMessageCmd for a 'challenge-setup:<type>:<dnsname>'
fails (!= 0 exit), the renewal process is aborted and an error is
     reported for the MDomain. This provides scripts that distribute
     information in a cluster to abort early with bothering an ACME
     server to validate a dns name that will not work. The common
     retry logic will make another attempt in the future, as with
     other failures.
     Fixed a bug when adding private key specs to an already working
     MDomain, see <https://github.com/icing/mod_md/issues/260>.



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1893399 13f79535-47bb-0310-9956-ffa450edef68
2021-09-17 12:18:41 +00:00
44abd7180e *) mod_md: fixed a bug in handling multiple parallel OCSP requests. These could
run into an assertion which terminated (and restarted) the child process where
     the task was running. Eventually, all OCSP responses were collected, but not
     in the way that things are supposed to work.
     See also <https://bz.apache.org/bugzilla/show_bug.cgi?id=65567>.
     The bug was possibly triggered when more than one OCSP status needed updating
     at the same time. For example for several renewed certificates after a server
     reload.



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1893359 13f79535-47bb-0310-9956-ffa450edef68
2021-09-15 13:22:27 +00:00
2de074063d fix time-of-use vs time-of-check
fix time-of-use time-of-check bugs

Submitted by: kokke <spam@rowdy.dk>

Github: closes #266


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1893326 13f79535-47bb-0310-9956-ffa450edef68
2021-09-14 06:56:21 +00:00
62e6e7081e mod_md:
* Certificate/keys pairs are verified as matching before a renewal is accepted
   as successful or a staged renewal is replacing the existing certificates.
   This avoid potential mess ups in the md store file system to render the active
   certificates non-working. [@mkauf]



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1892782 13f79535-47bb-0310-9956-ffa450edef68
2021-09-01 13:16:03 +00:00
3fe911d3c9 *) mod_md:
- Domain names in `<MDomain ...>` can now appear in quoted form.
     - Fixed a failure in ACME challenge selection that aborted further searches
       when the tls-alpn-01 method did not seem to be suitable.
     - Changed the tls-alpn-01 setup to only become unsuitable when none of the
       dns names showed support for a configured 'Protocols ... acme-tls/1'. This
       allows use of tls-alpn-01 for dns names that are not mapped to a VirtualHost.



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1891683 13f79535-47bb-0310-9956-ffa450edef68
2021-07-20 12:44:31 +00:00
c07608101f *) mod_md: fixed a potential null pointer dereference if ACME/OCSP
server returned 2xx responses without content type. Reported by chuangwen.



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1891470 13f79535-47bb-0310-9956-ffa450edef68
2021-07-12 07:52:28 +00:00
75f963e8e2 mod_md: removing the previous libressl workaround and adding the real
fix that disables ec key types not supported by libressl.



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1890001 13f79535-47bb-0310-9956-ffa450edef68
2021-05-18 13:41:27 +00:00
f0852ebab7 mod_md: workaround for missing libressl definitions. [Giovanni Bechis]
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1889995 13f79535-47bb-0310-9956-ffa450edef68
2021-05-18 11:34:29 +00:00
958c12bd6a * Spelling fixes after review by @bigio.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1889788 13f79535-47bb-0310-9956-ffa450edef68
2021-05-12 07:25:52 +00:00
abc8db91ca mod_md: make sure its post-config hook runs before mod_watchdog. if
not, mod_watchdog thinks it has nothing to do, if no one else installs
  any watchdog instance.



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1889101 13f79535-47bb-0310-9956-ffa450edef68
2021-04-22 10:17:02 +00:00
8951949163 core/ap_ssl_*: changes after review by rpluem
- removed no longer needed (char*) casts when looking
   up ssl variables.
 - move 'goto cleanup;' on separate source line
 - fixed check for wrong optional function in ap_run_ssl_var_lookup
 - remove ap_bytes_t again from httpd.h and passes now ocsp
   identifier as separate const char* and apr_size_t. This
   follows more how such data is passed in the rest of the
   server.



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1889009 13f79535-47bb-0310-9956-ffa450edef68
2021-04-20 12:16:05 +00:00
eb5a6fe0b9 mod_md: fixed a conversion warning, bumped version number.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1888726 13f79535-47bb-0310-9956-ffa450edef68
2021-04-13 11:27:09 +00:00
882ff74dd6 update the damn log tags.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1888724 13f79535-47bb-0310-9956-ffa450edef68
2021-04-13 11:13:48 +00:00
db5aa786d8 *) core/mod_ssl/mod_md: adding OCSP response provisioning as core feature. This
allows modules to access and provide OCSP response data without being tied
     of each other. The data is exchanged in standard, portable formats (PEM encoded
     certificates and DER encoded responses), so that the actual SSL/crypto
     implementations used by the modules are independant of each other.
     Registration and retrieval happen in the context of a server (server_rec)
     which modules may use to decide if they are configured for this or not.
     The area of changes:
     1. core: defines 2 functions in include/http_ssl.h, so that modules may
        register a certificate, together with its issuer certificate for OCSP
        response provisioning and ask for current response data (DER bytes) later.
        Also, 2 hooks are defined that allow modules to implement this OCSP
        provisioning.
     2. mod_ssl uses the new functions, in addition to what it did already, to
        register its certificates this way. If no one is interested in providing
        OCSP, it falls back to its own (if configured) stapling implementation.
     3. mod_md registers itself at the core hooks for OCSP provisioning. Depending
        on configuration, it will accept registrations of its own certificates only,
        all certficates or none.



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1888723 13f79535-47bb-0310-9956-ffa450edef68
2021-04-13 11:12:00 +00:00
587d170151 *) core: provide ap_ssl_* functions in new http_ssl.h header file.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1888083 13f79535-47bb-0310-9956-ffa450edef68
2021-03-26 11:27:34 +00:00
0bc464744b mod_md: make certain that the post config after ssl part runs really late.
bumped version number.



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1888006 13f79535-47bb-0310-9956-ffa450edef68
2021-03-24 13:44:10 +00:00
b1ae175f07 Resolving gcc's "error: too many arguments for format [-Werror=format-extra-args]".
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1887993 13f79535-47bb-0310-9956-ffa450edef68
2021-03-24 08:28:58 +00:00
21f16155c3 Fixing trace logging printf to have the correct args now that we number certs.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1887965 13f79535-47bb-0310-9956-ffa450edef68
2021-03-23 15:25:34 +00:00
cd1ff445fb mod_md:
- MDCertificateFile and MDCertificateKeyFile can now be specified several
     times to add multiple, static certificates to a MDomain.



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1887923 13f79535-47bb-0310-9956-ffa450edef68
2021-03-22 15:09:05 +00:00
4068b29f33 lets try ASN1_STRING_data() for openssl 1.0.2
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1887360 13f79535-47bb-0310-9956-ffa450edef68
2021-03-09 09:20:24 +00:00
9cffa480fe refrain from handling ip address alt names in pre 1.1 openssl
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1887343 13f79535-47bb-0310-9956-ffa450edef68
2021-03-08 21:51:53 +00:00
ff5583ba76 Use ASN1_STRING_data() if openssl verison < 1.1.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1887342 13f79535-47bb-0310-9956-ffa450edef68
2021-03-08 20:15:01 +00:00
02a1f36ff4 log tags, my nemesis
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1887340 13f79535-47bb-0310-9956-ffa450edef68
2021-03-08 19:50:54 +00:00
e3928f2b27 *) mod_md: v2.4.0 with improvements and bugfixes
- MDPrivateKeys allows the specification of several types. Beside "RSA" plus 
     optional key lengths elliptic curves can be configured. This means you can 
     have multiple certificates for a Managed Domain with different key types.
     With ```MDPrivateKeys secp384r1 rsa2048``` you get one ECDSA  and one RSA 
     certificate and all modern client will use the shorter ECDSA, while older 
     client will get the RSA certificate.
     Many thanks to @tlhackque who pushed and helped on this.
     - Support added for MDomains consisting of a wildcard. Configuring 
     ```MDomain *.host.net``` will match all virtual hosts matching that pattern 
     and obtain one certificate for it (assuming you have 'dns-01' challenge 
     support configured). Addresses #239.
     - Removed support for ACMEv1 servers. The only known installation used to 
     be Let's Encrypt which has disabled that version more than a year ago for 
     new accounts.
     - Andreas Ulm (<https://github.com/root360-AndreasUlm>) implemented the 
     ```renewing``` call to ```MDMessageCmd``` that can deny a certificate 
     renewal attempt. This is useful in clustered installations, as 
     discussed in #233).
     - New event ```challenge-setup:<type>:<domain>```, triggered when the 
     challenge data for a domain has been created. This is invoked before the 
     ACME server is told to check for it. The type is one of the ACME challenge 
     types. This is invoked for every DNS name in a MDomain.
     - The max delay for retries has been raised to daily (this is like all 
     retries jittered somewhat to avoid repeats at fixed time of day).
     - Certain error codes reported by the ACME server that indicate a problem 
     with the configured data now immediately switch to daily retries. For 
     example: if the ACME server rejects a contact email or a domain name, 
     frequent retries will most likely not solve the problem. But daily retries 
     still make sense as there might be an error at the server and un-supervised 
     certificate renewal is the goal. Refs #222.
     - Test case and work around for domain names > 64 octets. Fixes #227.
     When the first DNS name of an MD is longer than 63 octets, the certificate
     request will not contain a CN field, but leave it up to the CA to choose one.
     Currently, Lets Encrypt looks for a shorter name in the SAN list given and
     fails the request if none is found. But it is really up to the CA (and what
     browsers/libs accept here) and may change over the years. That is why
     the decision is best made at the CA.
     - Retry delays now have a random +/-[0-50]% modification applied to let 
     retries from several servers spread out more, should they have been 
     restarted at the same time of day.
     - Fixed several places where the 'badNonce' return code from an ACME server 
     was not handled correctly. The test server 'pebble' simulates this behaviour 
     by default and helps nicely in verifying this behaviour. Thanks, pebble!
     - Set the default `MDActivationDelay` to 0. This was confusing to users that
     new certificates were deemed not usably before a day of delay. When clocks are
     correct, using a new certificate right away should not pose a problem.
     - When handling ACME authorization resources, the module no longer requires 
     the server to return a "Location" header, as was necessary in ACMEv1. 
     Fixes #216.
     - Fixed a theoretical uninitialized read when testing for JSON error responses 
     from the ACME CA. Reported at <https://bz.apache.org/bugzilla/show_bug.cgi?id=64297>.
     - ACME problem reports from CAs that include parameters in the Content-Type 
     header are handled correctly. (Previously, the problem text would not be 
     reported and retries could exist CA limits.)
     - Account Update transactions to V2 CAs now use the correct POST-AS-GET method.  
     Previously, an empty JSON object was sent - which apparently LE accepted, 
     but others reject.



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1887337 13f79535-47bb-0310-9956-ffa450edef68
2021-03-08 18:05:50 +00:00
33af74c29f Synch from mod_md github:
mod_md: tolerate missing revokeCert or keyChange resource

RFC 8555 §7.1 states:

  The server MUST provide "directory" and "newNonce" resources.

But RFC 8555 makes no explicit statement anywhere whether other
resources are, or are not, required (with the exception of
"newAuthz" which is optional).

Therefore it is possible that some ACME server implementations may
omit some resources; in particular those that are not an essential
part of the "order" workflow.  Indeed, I am working with one such
server implementation, which does not at this time implement
"keyChange".  mod_md refuses to interact with this server because it
is checking that a certain set of resources are defined in the
directory object - despite some of those resources not currently
being used.

Update the check to require only "newNonce", "newAccount" and
"newOrder".  Omit from the check and therefore tolerate the absense
of resources which are not always required: "revokeCert" and
"keyChange".

If mod_md implements revocation and/or key rollover in the future,
the availability of those features should be predicated on the
server's advertised capabilities.

38ff597f3c

Submitted by: Fraser Tweedale <ftweedal redhat.com>
Github: closes #122


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1887148 13f79535-47bb-0310-9956-ffa450edef68
2021-03-03 14:53:12 +00:00
5dc01860db Adding more ap_ssl_* functions and hooks to the core server.
- ap_ssl_add_cert_files() to enable other modules like mod_md to provide
       certificate and keys for an SSL module like mod_ssl.
     - ap_ssl_add_fallback_cert_files() to enable other modules like mod_md to
       provide a fallback certificate in case no 'proper' certificate is
       available for an SSL module like mod_ssl.
     - ap_ssl_answer_challenge() to enable other modules like mod_md to
       provide a certificate as used in the RFC 8555 'tls-alpn-01' challenge
       for the ACME protocol for an SSL module like mod_ssl.
    - Hooks for 'ssl_add_cert_files', 'ssl_add_fallback_cert_files' and
      'ssl_answer_challenge' where modules like mod_md can provide providers
      to the above mentioned functions.



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1887085 13f79535-47bb-0310-9956-ffa450edef68
2021-03-02 14:21:18 +00:00
2a8260a069 *) mod_md: lowered the required minimal libcurl version from 7.50 to 7.29
as proposed by <alexander.gerasimov@codeit.pro>.



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1882542 13f79535-47bb-0310-9956-ffa450edef68
2020-10-15 13:45:31 +00:00
72320775f0 'md_ocsp_get_stapling_status()' should return int, not apr_status_t.
This is similar to r1876549 for another function.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1882399 13f79535-47bb-0310-9956-ffa450edef68
2020-10-11 07:50:46 +00:00
b7ba286b6e Add error checks in md_json_readb
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1878462 13f79535-47bb-0310-9956-ffa450edef68
2020-06-04 07:04:09 +00:00