Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Fix crash with blurhashes with reported dimension of 0x0
This commit fixes a consistent crash noticed when visiting a particular profile. The crash was occuring when trying to display the blurhash of a specific Event, where the metadata claimed the image dimensions were 0px x 0px. The null dimensions caused a division by zero to occur when scaling the image down, yielding a NaN (Not a Number) size value, which crashed the app when trying to cast that CGFloat value down to an integer. The crash was fixed by modifying the down-scaling computations to check for invalid dimensions, and return nil. The callers were then updated to fallback to a default display dimension. Issue repro ------- Device: iPhone 15 simulator iOS: 17.5 Damus: dba1799 Steps: 1. Visit the profile npub1gujeqakgt7fyp6zjggxhyy7ft623qtcaay5lkc8n8gkry4cvnrzqd3f67z 2. Check accessing the profile does not crash Damus. 3. Visit the event that had invalid 0x0 dimensions on the metadata (note1qmqdualjezamcjun23l4d9xw7529m7fee6hklgtnhack2fwznxysuzuuyz) 4. Check that Damus does not crash. Results: Steps 2 and 4 crash 100% of the time (3/3) Testing -------- PASS Device: iPhone 15 simulator iOS: 17.5 Damus: This commit Steps: Same as repro Results: 1. Crash no longer occurs 2. Blurhash looks ok Closes: #2341 Changelog-Fixed: Fix crash when viewing notes with invalid image dimension metadata Signed-off-by: Daniel D’Aquino <[email protected]>
- Loading branch information