summaryrefslogtreecommitdiff
path: root/sql/sql_yacc.yy
diff options
context:
space:
mode:
authorJon Olav Hauglid <jon.hauglid@oracle.com>2012-01-09 11:33:26 +0100
committerJon Olav Hauglid <jon.hauglid@oracle.com>2012-01-09 11:33:26 +0100
commit63a0c3078b708bb7f985e33d22e5127244466aff (patch)
treea7aa2696cedf959b55bf3d17f88c037baee0e837 /sql/sql_yacc.yy
parent86701392fcc4950056e9b28a8ce140c660a5df5f (diff)
parent6c1bbb50cb9ee124e762f66004a3daad297e6d6f (diff)
downloadmariadb-git-63a0c3078b708bb7f985e33d22e5127244466aff.tar.gz
Merge from mysql-5.1-security to mysql-5.5-security
Text conflict in sql/sql_yacc.yy
Diffstat (limited to 'sql/sql_yacc.yy')
-rw-r--r--sql/sql_yacc.yy12
1 files changed, 9 insertions, 3 deletions
diff --git a/sql/sql_yacc.yy b/sql/sql_yacc.yy
index 8f3e6373666..bf7ca6b02ed 100644
--- a/sql/sql_yacc.yy
+++ b/sql/sql_yacc.yy
@@ -2739,9 +2739,15 @@ sp_decl:
sp_instr_hpush_jump *i=
new sp_instr_hpush_jump(sp->instructions(), ctx, $2,
ctx->current_var_count());
- if (i == NULL ||
- sp->add_instr(i) ||
- sp->push_backpatch(i, ctx->push_label((char *)"", 0)))
+ if (i == NULL || sp->add_instr(i))
+ MYSQL_YYABORT;
+
+ /* For continue handlers, mark end of handler scope. */
+ if ($2 == SP_HANDLER_CONTINUE &&
+ sp->push_backpatch(i, ctx->last_label()))
+ MYSQL_YYABORT;
+
+ if (sp->push_backpatch(i, ctx->push_label(empty_c_string, 0)))
MYSQL_YYABORT;
}
sp_hcond_list sp_proc_stmt