瀏覽代碼

Prevent panic when dividing through zero

Justin Nuß 10 年之前
父節點
當前提交
0d06c7e5f2
共有 1 個文件被更改,包括 6 次插入0 次删除
  1. 6 0
      models/issue.go

+ 6 - 0
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()