Rob Shearman : widl: Issue an error instead of crashing for dividing by zero in a constant expression .
Alexandre Julliard
julliard at winehq.org
Mon Apr 21 07:46:18 CDT 2008
Module: wine
Branch: master
Commit: efd10742ec02ec14fe080f8b69244ecbae920798
URL: http://source.winehq.org/git/wine.git/?a=commit;h=efd10742ec02ec14fe080f8b69244ecbae920798
Author: Rob Shearman <rob at codeweavers.com>
Date: Sun Apr 20 22:15:36 2008 +0100
widl: Issue an error instead of crashing for dividing by zero in a constant expression.
---
tools/widl/parser.y | 6 +++++-
1 files changed, 5 insertions(+), 1 deletions(-)
diff --git a/tools/widl/parser.y b/tools/widl/parser.y
index 6f5dbdd..c7fbe42 100644
--- a/tools/widl/parser.y
+++ b/tools/widl/parser.y
@@ -1237,7 +1237,11 @@ static expr_t *make_expr2(enum expr_type type, expr_t *expr1, expr_t *expr2)
e->cval = expr1->cval * expr2->cval;
break;
case EXPR_DIV:
- e->cval = expr1->cval / expr2->cval;
+ if (expr2->cval == 0) {
+ error_loc("divide by zero in expression\n");
+ e->cval = 0;
+ } else
+ e->cval = expr1->cval / expr2->cval;
break;
case EXPR_OR:
e->cval = expr1->cval | expr2->cval;
More information about the wine-cvs
mailing list