models/issue: fix panic when clear labels (#5445)

This commit is contained in:
Unknwon
2018-12-02 17:51:24 -05:00
parent e0f18b2255
commit 29c5be47ed
3 changed files with 8 additions and 3 deletions

View File

@@ -314,8 +314,13 @@ func (issue *Issue) clearLabels(e *xorm.Session) (err error) {
return fmt.Errorf("getLabels: %v", err)
}
// NOTE: issue.removeLabel slices issue.Labels, so we need to create another slice to be unaffected.
labels := make([]*Label, len(issue.Labels))
for i := range issue.Labels {
if err = issue.removeLabel(e, issue.Labels[i]); err != nil {
labels[i] = issue.Labels[i]
}
for i := range labels {
if err = issue.removeLabel(e, labels[i]); err != nil {
return fmt.Errorf("removeLabel: %v", err)
}
}