Module: wine Branch: master Commit: efd10742ec02ec14fe080f8b69244ecbae920798 URL: http://source.winehq.org/git/wine.git/?a=commit;h=efd10742ec02ec14fe080f8b69...
Author: Rob Shearman rob@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;