postgres.git / summary / log / commit / refs

commit    8e053dc6dfbee4ae412e98ad73cfd4662d7453ac
Author:   Robert Haas <rhaas@postgresql.org>
Date:     Wed Mar 30 19:53:08 2022 +0000

    Fix possible NULL-pointer-deference in backup_compression.c.
    
    Per Coverity and Tom Lane. Reviewed by Tom Lane and Justin Pryzby.
    
    Discussion: http://postgr.es/m/384291.1648403267@sss.pgh.pa.us


src/common/backup_compression.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/common/backup_compression.c b/src/common/backup_compression.c index 969e08cca20..867f2f2eb5e 100644 --- a/src/common/backup_compression.c +++ b/src/common/backup_compression.c @@ -191,8 +191,16 @@ parse_bc_specification(bc_algorithm algorithm, char *specification, if (value != NULL) pfree(value); - /* If we got an error or have reached the end of the string, stop. */ - if (result->parse_error != NULL || *kwend == '\0' || *vend == '\0') + /* + * If we got an error or have reached the end of the string, stop. + * + * If there is no value, then the end of the keyword might have been + * the end of the string. If there is a value, then the end of the + * keyword cannot have been the end of the string, but the end of the + * value might have been. + */ + if (result->parse_error != NULL || + (vend == NULL ? *kwend == '\0' : *vend == '\0')) break; /* Advance to next entry and loop around. */ [parent: 027fa0fd7261]