Skip to content

fix(e2ee): refresh during crud operations#17267

Open
alperozturk96 wants to merge 4 commits into
masterfrom
fix/e2ee-counter-check
Open

fix(e2ee): refresh during crud operations#17267
alperozturk96 wants to merge 4 commits into
masterfrom
fix/e2ee-counter-check

Conversation

@alperozturk96

@alperozturk96 alperozturk96 commented Jul 1, 2026

Copy link
Copy Markdown
Collaborator

Issue

Refreshing folder causing crash during crud operations in encrypted folder. Local counter should be only updated after completion of operation.

Changes

  • Consolidates counter updates
  • Updates counter after serializeAndUploadMetadata
  • Waits until current uploads finish then verify metadata during refresh folder operation

Signed-off-by: alperozturk96 <alper_ozturk@proton.me>
Signed-off-by: alperozturk96 <alper_ozturk@proton.me>
Signed-off-by: alperozturk96 <alper_ozturk@proton.me>
Signed-off-by: alperozturk96 <alper_ozturk@proton.me>

parentFolder.setE2eCounter(metadata.metadata.counter)
val storageManager = FileDataStorageManager(user, context.contentResolver)
storageManager.saveFile(parentFolder)

@alperozturk96 alperozturk96 Jul 1, 2026

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should be after serializeAndUploadMetadata

metadata,
getStorageManager());

parentFile.setE2eCounter(metadata.getMetadata().getCounter());

@alperozturk96 alperozturk96 Jul 1, 2026

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should be after serializeAndUploadMetadata


metadataFile.metadata.files[encryptedFileName] = decryptedFile
metadataFile.metadata.counter++
ocFile.setE2eCounter(metadataFile.metadata.counter)

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

addFileToMetadata has one caller and that already updates counter. No need to double it.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also aligns with other functions such as removeFolderFromMetadata

): DecryptedFolderMetadataFile {
metadataFile.metadata.folders[encryptedFileName] = fileName
metadataFile.metadata.counter++
ocFile.setE2eCounter(metadataFile.metadata.counter)

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

addFolderToMetadata has one caller and that already updates counter. No need to double it.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also aligns with other functions such as removeFolderFromMetadata

@github-actions

github-actions Bot commented Jul 1, 2026

Copy link
Copy Markdown

blue-Light-Screenshot test failed, but no output was generated. Maybe a preliminary stage failed.

@github-actions

github-actions Bot commented Jul 1, 2026

Copy link
Copy Markdown

Codacy

SpotBugs

CategoryBaseNew
Bad practice3232
Correctness6766
Dodgy code218218
Experimental11
Malicious code vulnerability22
Multithreaded correctness2929
Performance4141
Security1919
Total409408

@github-actions

github-actions Bot commented Jul 1, 2026

Copy link
Copy Markdown

APK file: https://github.com/nextcloud/android/actions/runs/28519645539/artifacts/8011646161
To test this change/fix you can simply download above APK file and install and test it in parallel to your existing Nextcloud app.
qrcode (please click on link to get QR code displayed)

@github-actions

github-actions Bot commented Jul 1, 2026

Copy link
Copy Markdown

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant