mirror of
				https://gitee.com/gitea/gitea
				synced 2025-11-04 08:30:25 +08:00 
			
		
		
		
	Fix potential bugs (#10513)
* use e if it is an option * potential nil so check err first * check err first * m == nil already checked
This commit is contained in:
		@@ -213,7 +213,7 @@ func (a *Action) getCommentLink(e Engine) string {
 | 
				
			|||||||
		return "#"
 | 
							return "#"
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	if a.Comment == nil && a.CommentID != 0 {
 | 
						if a.Comment == nil && a.CommentID != 0 {
 | 
				
			||||||
		a.Comment, _ = GetCommentByID(a.CommentID)
 | 
							a.Comment, _ = getCommentByID(e, a.CommentID)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	if a.Comment != nil {
 | 
						if a.Comment != nil {
 | 
				
			||||||
		return a.Comment.HTMLURL()
 | 
							return a.Comment.HTMLURL()
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -199,7 +199,7 @@ func GetAttachmentsByCommentID(commentID int64) ([]*Attachment, error) {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
func getAttachmentsByCommentID(e Engine, commentID int64) ([]*Attachment, error) {
 | 
					func getAttachmentsByCommentID(e Engine, commentID int64) ([]*Attachment, error) {
 | 
				
			||||||
	attachments := make([]*Attachment, 0, 10)
 | 
						attachments := make([]*Attachment, 0, 10)
 | 
				
			||||||
	return attachments, x.Where("comment_id=?", commentID).Find(&attachments)
 | 
						return attachments, e.Where("comment_id=?", commentID).Find(&attachments)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// getAttachmentByReleaseIDFileName return a file based on the the following infos:
 | 
					// getAttachmentByReleaseIDFileName return a file based on the the following infos:
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -765,8 +765,12 @@ func CreateRefComment(doer *User, repo *Repository, issue *Issue, content, commi
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
// GetCommentByID returns the comment by given ID.
 | 
					// GetCommentByID returns the comment by given ID.
 | 
				
			||||||
func GetCommentByID(id int64) (*Comment, error) {
 | 
					func GetCommentByID(id int64) (*Comment, error) {
 | 
				
			||||||
 | 
						return getCommentByID(x, id)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func getCommentByID(e Engine, id int64) (*Comment, error) {
 | 
				
			||||||
	c := new(Comment)
 | 
						c := new(Comment)
 | 
				
			||||||
	has, err := x.ID(id).Get(c)
 | 
						has, err := e.ID(id).Get(c)
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		return nil, err
 | 
							return nil, err
 | 
				
			||||||
	} else if !has {
 | 
						} else if !has {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -396,7 +396,7 @@ func (n *Notification) loadIssue(e Engine) (err error) {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
func (n *Notification) loadComment(e Engine) (err error) {
 | 
					func (n *Notification) loadComment(e Engine) (err error) {
 | 
				
			||||||
	if n.Comment == nil && n.CommentID > 0 {
 | 
						if n.Comment == nil && n.CommentID > 0 {
 | 
				
			||||||
		n.Comment, err = GetCommentByID(n.CommentID)
 | 
							n.Comment, err = getCommentByID(e, n.CommentID)
 | 
				
			||||||
		if err != nil {
 | 
							if err != nil {
 | 
				
			||||||
			return fmt.Errorf("GetCommentByID [%d] for issue ID [%d]: %v", n.CommentID, n.IssueID, err)
 | 
								return fmt.Errorf("GetCommentByID [%d] for issue ID [%d]: %v", n.CommentID, n.IssueID, err)
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -108,7 +108,7 @@ func (s *linkifyParser) Parse(parent ast.Node, block text.Reader, pc parser.Cont
 | 
				
			|||||||
		}
 | 
							}
 | 
				
			||||||
		at := bytes.IndexByte(line, '@')
 | 
							at := bytes.IndexByte(line, '@')
 | 
				
			||||||
		m = []int{0, stop, at, stop - 1}
 | 
							m = []int{0, stop, at, stop - 1}
 | 
				
			||||||
		if m == nil || bytes.IndexByte(line[m[2]:m[3]], '.') < 0 {
 | 
							if bytes.IndexByte(line[m[2]:m[3]], '.') < 0 {
 | 
				
			||||||
			return nil
 | 
								return nil
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		lastChar := line[m[1]-1]
 | 
							lastChar := line[m[1]-1]
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -70,14 +70,14 @@ func UploadAttachment(ctx *context.Context) {
 | 
				
			|||||||
func DeleteAttachment(ctx *context.Context) {
 | 
					func DeleteAttachment(ctx *context.Context) {
 | 
				
			||||||
	file := ctx.Query("file")
 | 
						file := ctx.Query("file")
 | 
				
			||||||
	attach, err := models.GetAttachmentByUUID(file)
 | 
						attach, err := models.GetAttachmentByUUID(file)
 | 
				
			||||||
	if !ctx.IsSigned || (ctx.User.ID != attach.UploaderID) {
 | 
					 | 
				
			||||||
		ctx.Error(403)
 | 
					 | 
				
			||||||
		return
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		ctx.Error(400, err.Error())
 | 
							ctx.Error(400, err.Error())
 | 
				
			||||||
		return
 | 
							return
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
						if !ctx.IsSigned || (ctx.User.ID != attach.UploaderID) {
 | 
				
			||||||
 | 
							ctx.Error(403)
 | 
				
			||||||
 | 
							return
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
	err = models.DeleteAttachment(attach, true)
 | 
						err = models.DeleteAttachment(attach, true)
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		ctx.Error(500, fmt.Sprintf("DeleteAttachment: %v", err))
 | 
							ctx.Error(500, fmt.Sprintf("DeleteAttachment: %v", err))
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -244,11 +244,11 @@ func Diff(ctx *context.Context) {
 | 
				
			|||||||
	parents := make([]string, commit.ParentCount())
 | 
						parents := make([]string, commit.ParentCount())
 | 
				
			||||||
	for i := 0; i < commit.ParentCount(); i++ {
 | 
						for i := 0; i < commit.ParentCount(); i++ {
 | 
				
			||||||
		sha, err := commit.ParentID(i)
 | 
							sha, err := commit.ParentID(i)
 | 
				
			||||||
		parents[i] = sha.String()
 | 
					 | 
				
			||||||
		if err != nil {
 | 
							if err != nil {
 | 
				
			||||||
			ctx.NotFound("repo.Diff", err)
 | 
								ctx.NotFound("repo.Diff", err)
 | 
				
			||||||
			return
 | 
								return
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
							parents[i] = sha.String()
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	ctx.Data["CommitID"] = commitID
 | 
						ctx.Data["CommitID"] = commitID
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user