From c72fb747b8a64117538229f1e5a85d220349b6f1 Mon Sep 17 00:00:00 2001 From: dafengge0913 Date: Sat, 10 Sep 2022 13:05:34 +0800 Subject: Fix DeleteComment slice bounds out of range (#1343) --- comment.go | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) (limited to 'comment.go') diff --git a/comment.go b/comment.go index ac22ec7..a75ea7f 100644 --- a/comment.go +++ b/comment.go @@ -156,17 +156,20 @@ func (f *File) DeleteComment(sheet, cell string) (err error) { } commentsXML = strings.TrimPrefix(commentsXML, "/") if comments := f.commentsReader(commentsXML); comments != nil { - for i, cmt := range comments.CommentList.Comment { - if cmt.Ref == cell { - if len(comments.CommentList.Comment) > 1 { - comments.CommentList.Comment = append( - comments.CommentList.Comment[:i], - comments.CommentList.Comment[i+1:]..., - ) - continue - } - comments.CommentList.Comment = nil + for i := 0; i < len(comments.CommentList.Comment); i++ { + cmt := comments.CommentList.Comment[i] + if cmt.Ref != cell { + continue + } + if len(comments.CommentList.Comment) > 1 { + comments.CommentList.Comment = append( + comments.CommentList.Comment[:i], + comments.CommentList.Comment[i+1:]..., + ) + i-- + continue } + comments.CommentList.Comment = nil } f.Comments[commentsXML] = comments } -- cgit v1.2.1