]> granicus.if.org Git - postgresql/commitdiff
Fix off-by-one check that can lead to a memory overflow in ecpg.
authorMichael Meskes <meskes@postgresql.org>
Thu, 11 Apr 2019 18:56:17 +0000 (20:56 +0200)
committerMichael Meskes <meskes@postgresql.org>
Thu, 11 Apr 2019 18:56:17 +0000 (20:56 +0200)
Patch by Liu Huailing <liuhuailing@cn.fujitsu.com>

src/interfaces/ecpg/preproc/pgc.l

index 60474b0b4a6d5848c2b6a76d6142edefff811380..3dc2453a2fc83fd358d2d3c8b4ad601ff354b65d 100644 (file)
@@ -1556,7 +1556,7 @@ parse_include(void)
 
                for (ip = include_paths; yyin == NULL && ip != NULL; ip = ip->next)
                {
-                       if (strlen(ip->path) + strlen(yytext) + 3 > MAXPGPATH)
+                       if (strlen(ip->path) + strlen(yytext) + 4 > MAXPGPATH)
                        {
                                fprintf(stderr, _("Error: include path \"%s/%s\" is too long on line %d, skipping\n"), ip->path, yytext, yylineno);
                                continue;