Browse Source

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

Unknwon 6 years ago
parent
commit
29c5be47ed
3 changed files with 8 additions and 3 deletions
  1. 1 1
      gogs.go
  2. 6 1
      models/issue.go
  3. 1 1
      templates/.VERSION

+ 1 - 1
gogs.go

@@ -16,7 +16,7 @@ import (
 	"github.com/gogs/gogs/pkg/setting"
 )
 
-const APP_VER = "0.11.73.1202"
+const APP_VER = "0.11.74.1202"
 
 func init() {
 	setting.AppVer = APP_VER

+ 6 - 1
models/issue.go

@@ -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)
 		}
 	}

+ 1 - 1
templates/.VERSION

@@ -1 +1 @@
-0.11.73.1202
+0.11.74.1202