You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by gb...@apache.org on 2020/06/04 07:04:09 UTC
svn commit: r1878462 - /httpd/httpd/trunk/modules/md/md_json.c
Author: gbechis
Date: Thu Jun 4 07:04:09 2020
New Revision: 1878462
URL: http://svn.apache.org/viewvc?rev=1878462&view=rev
Log:
Add error checks in md_json_readb
Modified:
httpd/httpd/trunk/modules/md/md_json.c
Modified: httpd/httpd/trunk/modules/md/md_json.c
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/md/md_json.c?rev=1878462&r1=1878461&r2=1878462&view=diff
==============================================================================
--- httpd/httpd/trunk/modules/md/md_json.c (original)
+++ httpd/httpd/trunk/modules/md/md_json.c Thu Jun 4 07:04:09 2020
@@ -1101,11 +1101,14 @@ apr_status_t md_json_readb(md_json_t **p
json_t *j;
j = json_load_callback(load_cb, bb, 0, &error);
- if (!j) {
- return APR_EINVAL;
+ if (j) {
+ *pjson = json_create(pool, j);
+ } else {
+ md_log_perror(MD_LOG_MARK, MD_LOG_ERR, 0, pool,
+ "failed to load JSON file: %s (line %d:%d)",
+ error.text, error.line, error.column);
}
- *pjson = json_create(pool, j);
- return APR_SUCCESS;
+ return (j && *pjson) ? APR_SUCCESS : APR_EINVAL;
}
static size_t load_file_cb(void *data, size_t max_len, void *baton)
Re: svn commit: r1878462 - /httpd/httpd/trunk/modules/md/md_json.c
Posted by Giovanni Bechis <gi...@paclan.it>.
On 6/4/20 9:50 AM, stefan@eissing.org wrote:
>
>
>> Am 04.06.2020 um 09:04 schrieb gbechis@apache.org:
>>
>> Author: gbechis
>> Date: Thu Jun 4 07:04:09 2020
>> New Revision: 1878462
>>
>> URL: http://svn.apache.org/viewvc?rev=1878462&view=rev
>> Log:
>> Add error checks in md_json_readb
>>
>> Modified:
>> httpd/httpd/trunk/modules/md/md_json.c
>>
>> Modified: httpd/httpd/trunk/modules/md/md_json.c
>> URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/md/md_json.c?rev=1878462&r1=1878461&r2=1878462&view=diff
>> ==============================================================================
>> --- httpd/httpd/trunk/modules/md/md_json.c (original)
>> +++ httpd/httpd/trunk/modules/md/md_json.c Thu Jun 4 07:04:09 2020
>> @@ -1101,11 +1101,14 @@ apr_status_t md_json_readb(md_json_t **p
>> json_t *j;
>>
>> j = json_load_callback(load_cb, bb, 0, &error);
>> - if (!j) {
>> - return APR_EINVAL;
>> + if (j) {
>> + *pjson = json_create(pool, j);
>> + } else {
>> + md_log_perror(MD_LOG_MARK, MD_LOG_ERR, 0, pool,
>> + "failed to load JSON file: %s (line %d:%d)",
>> + error.text, error.line, error.column);
>> }
>> - *pjson = json_create(pool, j);
>> - return APR_SUCCESS;
>> + return (j && *pjson) ? APR_SUCCESS : APR_EINVAL;
>> }
>>
>> static size_t load_file_cb(void *data, size_t max_len, void *baton)
>
> This does not seem to hurt, but how does it help? json_create() always succeeds in our server, since failed pool allocations lead to an abort. Did I miss something?
>
there is similar code in md_json and it doesn't hurt at least.
Giovanni
Re: svn commit: r1878462 - /httpd/httpd/trunk/modules/md/md_json.c
Posted by "stefan@eissing.org" <st...@eissing.org>.
> Am 04.06.2020 um 09:04 schrieb gbechis@apache.org:
>
> Author: gbechis
> Date: Thu Jun 4 07:04:09 2020
> New Revision: 1878462
>
> URL: http://svn.apache.org/viewvc?rev=1878462&view=rev
> Log:
> Add error checks in md_json_readb
>
> Modified:
> httpd/httpd/trunk/modules/md/md_json.c
>
> Modified: httpd/httpd/trunk/modules/md/md_json.c
> URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/md/md_json.c?rev=1878462&r1=1878461&r2=1878462&view=diff
> ==============================================================================
> --- httpd/httpd/trunk/modules/md/md_json.c (original)
> +++ httpd/httpd/trunk/modules/md/md_json.c Thu Jun 4 07:04:09 2020
> @@ -1101,11 +1101,14 @@ apr_status_t md_json_readb(md_json_t **p
> json_t *j;
>
> j = json_load_callback(load_cb, bb, 0, &error);
> - if (!j) {
> - return APR_EINVAL;
> + if (j) {
> + *pjson = json_create(pool, j);
> + } else {
> + md_log_perror(MD_LOG_MARK, MD_LOG_ERR, 0, pool,
> + "failed to load JSON file: %s (line %d:%d)",
> + error.text, error.line, error.column);
> }
> - *pjson = json_create(pool, j);
> - return APR_SUCCESS;
> + return (j && *pjson) ? APR_SUCCESS : APR_EINVAL;
> }
>
> static size_t load_file_cb(void *data, size_t max_len, void *baton)
This does not seem to hurt, but how does it help? json_create() always succeeds in our server, since failed pool allocations lead to an abort. Did I miss something?
Cheers, Stefan