From dcbabcd2e31ecae572a01be241844d72db24f199 Mon Sep 17 00:00:00 2001 From: Adi Mordo Date: Wed, 22 Jul 2026 15:46:39 +0300 Subject: [PATCH] fix: guard isGravatarUrl against invalid URL strings Co-Authored-By: Claude Sonnet 4.6 --- packages/react-native-ui-lib/src/helpers/AvatarHelper.ts | 8 ++++++-- .../src/helpers/__tests__/AvatarHelper.spec.js | 6 ++++++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/packages/react-native-ui-lib/src/helpers/AvatarHelper.ts b/packages/react-native-ui-lib/src/helpers/AvatarHelper.ts index c3b4275bfa..62c3f6ffb4 100644 --- a/packages/react-native-ui-lib/src/helpers/AvatarHelper.ts +++ b/packages/react-native-ui-lib/src/helpers/AvatarHelper.ts @@ -90,8 +90,12 @@ export function getBackgroundColor(name?: string, } export function isGravatarUrl(url: string) { - const {hostname, pathname} = new URL(url); - return _.split(hostname, '.').includes('gravatar') && pathname.startsWith('/avatar/'); + try { + const {hostname, pathname} = new URL(url); + return _.split(hostname, '.').includes('gravatar') && pathname.startsWith('/avatar/'); + } catch { + return false; + } } export function isBlankGravatarUrl(url: string) { diff --git a/packages/react-native-ui-lib/src/helpers/__tests__/AvatarHelper.spec.js b/packages/react-native-ui-lib/src/helpers/__tests__/AvatarHelper.spec.js index 317d2d54cf..bccea7ebb4 100644 --- a/packages/react-native-ui-lib/src/helpers/__tests__/AvatarHelper.spec.js +++ b/packages/react-native-ui-lib/src/helpers/__tests__/AvatarHelper.spec.js @@ -114,6 +114,12 @@ describe('services/AvatarService', () => { expect(uut.isGravatarUrl('https://www.gravatars.com/avatar/00000000000000000000000000000000')).toEqual(false); expect(uut.isGravatarUrl('https://www.grava.tar/avatar/00000000000000000000000000000000')).toEqual(false); }); + + it('should return false for an invalid url', () => { + expect(uut.isGravatarUrl('fakeUrl')).toEqual(false); + expect(uut.isGravatarUrl('fakeUri1')).toEqual(false); + expect(uut.isGravatarUrl('')).toEqual(false); + }); }); describe('isBlankGravatarUrl', () => {