From 0d06c7e5f2f8239383a3727c69ef938d12c037e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Justin=20Nu=C3=9F?= Date: Tue, 22 Jul 2014 20:57:48 +0200 Subject: [PATCH] Prevent panic when dividing through zero --- models/issue.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/models/issue.go b/models/issue.go index baf710a5eef..8b2d57cd222 100644 --- a/models/issue.go +++ b/models/issue.go @@ -19,6 +19,7 @@ var ( ErrIssueNotExist = errors.New("Issue does not exist") ErrLabelNotExist = errors.New("Label does not exist") ErrMilestoneNotExist = errors.New("Milestone does not exist") + ErrWrongIssueCounter = errors.New("Invalid number of issues for this milestone") ) // Issue represents an issue or pull request of repository. @@ -703,6 +704,11 @@ func ChangeMilestoneAssign(oldMid, mid int64, issue *Issue) (err error) { if issue.IsClosed { m.NumClosedIssues++ } + + if m.NumIssues == 0 { + return ErrWrongIssueCounter + } + m.Completeness = m.NumClosedIssues * 100 / m.NumIssues if _, err = sess.Id(m.Id).Update(m); err != nil { sess.Rollback()