浏览代码

[server] Fix incorrect pointer assignment in collection file map

Neeraj Gupta 1 年之前
父节点
当前提交
ca7b03e945
共有 1 个文件被更改,包括 9 次插入3 次删除
  1. 9 3
      server/pkg/controller/file_copy/file_copy.go

+ 9 - 3
server/pkg/controller/file_copy/file_copy.go

@@ -66,8 +66,9 @@ func (fc *FileCopyController) CopyFiles(c *gin.Context, req ente.CopyFileSyncReq
 	}
 	fileIDs := req.FileIDs()
 	fileToCollectionFileMap := make(map[int64]*ente.CollectionFileItem, len(req.CollectionFileItems))
-	for _, collectionFileItem := range req.CollectionFileItems {
-		fileToCollectionFileMap[collectionFileItem.ID] = &collectionFileItem
+	for i, _ := range req.CollectionFileItems {
+		item := &req.CollectionFileItems[i]
+		fileToCollectionFileMap[item.ID] = item
 	}
 	s3ObjectsToCopy, err := fc.ObjectRepo.GetObjectsForFileIDs(fileIDs)
 	if err != nil {
@@ -115,7 +116,12 @@ func (fc *FileCopyController) CopyFiles(c *gin.Context, req ente.CopyFileSyncReq
 		}
 	}
 	fileCopyList := make([]fileCopyInternal, 0, len(existingFilesToCopy))
-	for _, file := range existingFilesToCopy {
+	for i, _ := range existingFilesToCopy {
+		file := existingFilesToCopy[i]
+		collectionItem := fileToCollectionFileMap[file.ID]
+		if collectionItem.ID != file.ID {
+			return nil, ente.NewInternalError(fmt.Sprintf("expected collectionItem.ID %d, got %d", file.ID, collectionItem.ID))
+		}
 		fileCopy := fileCopyInternal{
 			SourceFile:            file,
 			DestCollectionID:      req.DstCollection,