Draaien in de bijsnijdialoog decodeert het bronbestand onbegrensd op de interface #2728
Labels
No labels
accepted
bug
declined
docs
duplicate
enhancement
good first issue
in-progress
needs-info
privacy
release-blocker
security
triage
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
LibreKAT/Ocideck#2728
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Wat er mis is
Eén kwartslag in de bijsnijdialoog bevriest het venster. De dialoog leest het bronbestand synchroon en roept
img.decodeImageaan binnensetState, zonder de 4096-grens. Een foto van 6000×4000 is ongeveer 92 MiB gedecodeerd, plus een tweede buffer voor de rotatie, en het opnieuw coderen naar PNG gebeurt op dezelfde thread. De renderlaag zou hetzelfde bestand tot 4096 px afschalen. Logoherkenning en de HTML-insluiting weigeren die maat wél vóór het decoderen.Bewijs
lib/widgets/slides/image_crop_dialog.dart_rotate:setStatemetimg.decodeImageop_originalBytes._loadOriginalBytesleest het bestand metreadAsBytesSync.lib/utils/image_limits.dartis de grens die dit pad niet erft.lib/services/import/logo_detection.dartlaat de bestaande proef zien.Voorstel
Eerst de afmeting peilen. Boven 4096 niet decoderen of eerst schalen. Eén decode hergebruiken voor voorbeeld en bestand, en dat werk van de interface-isolate af halen.
Geen nieuwe afhankelijkheid. Het bestandsformaat verandert niet.