Changeset: caa5eb85cec4 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=caa5eb85cec4
Modified Files:
        monetdb5/mal/mal_parser.c
Branch: Dec2016
Log Message:

Don't return a pointer into freed memory.
This fixes bug 6176.


diffs (43 lines):

diff --git a/monetdb5/mal/mal_parser.c b/monetdb5/mal/mal_parser.c
--- a/monetdb5/mal/mal_parser.c
+++ b/monetdb5/mal/mal_parser.c
@@ -1134,6 +1134,7 @@ fcnHeader(Client cntxt, int kind)
                                freeSymbol(cntxt->curprg);
                                cntxt->curprg = cntxt->backup;
                                cntxt->backup = 0;
+                               curBlk = NULL;
                        }
                        parseError(cntxt, "',' expected\n");
                        skipToEnd(cntxt);
@@ -1149,6 +1150,7 @@ fcnHeader(Client cntxt, int kind)
                        freeSymbol(cntxt->curprg);
                        cntxt->curprg = cntxt->backup;
                        cntxt->backup = 0;
+                       curBlk = NULL;
                }
                parseError(cntxt, "')' expected\n");
                skipToEnd(cntxt);
@@ -1191,6 +1193,7 @@ fcnHeader(Client cntxt, int kind)
                                        freeSymbol(cntxt->curprg);
                                        cntxt->curprg = cntxt->backup;
                                        cntxt->backup = 0;
+                                       curBlk = NULL;
                                }
                                parseError(cntxt, "',' expected\n");
                                skipToEnd(cntxt);
@@ -1210,6 +1213,7 @@ fcnHeader(Client cntxt, int kind)
                                freeSymbol(cntxt->curprg);
                                cntxt->curprg = cntxt->backup;
                                cntxt->backup = 0;
+                               curBlk = NULL;
                        }
                        skipToEnd(cntxt);
                        return curBlk;
@@ -1231,6 +1235,7 @@ fcnHeader(Client cntxt, int kind)
                                freeSymbol(cntxt->curprg);
                                cntxt->curprg = cntxt->backup;
                                cntxt->backup = 0;
+                               curBlk = NULL;
                        }
                        parseError(cntxt, "')' expected\n");
                        skipToEnd(cntxt);
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to