From 8b8f1bb6786554225a4cc2d610955f0e013704f2 Mon Sep 17 00:00:00 2001 From: silverpill Date: Tue, 14 Mar 2023 18:48:36 +0000 Subject: [PATCH] Ignore emojis with non-unique names in remote posts --- CHANGELOG.md | 1 + src/activitypub/handlers/create.rs | 11 +++++++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7cb9298..b1c0fe8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -28,6 +28,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). ### Fixed - Allow `!` after hashtags and mentions. +- Ignore emojis with non-unique names in remote posts. ## [1.16.0] - 2023-03-08 diff --git a/src/activitypub/handlers/create.rs b/src/activitypub/handlers/create.rs index 6bb8cde..0f911f1 100644 --- a/src/activitypub/handlers/create.rs +++ b/src/activitypub/handlers/create.rs @@ -304,14 +304,21 @@ pub async fn handle_emoji( } else { let hostname = get_hostname(&tag.id) .map_err(|_| ValidationError("invalid emoji ID"))?; - create_emoji( + match create_emoji( db_client, emoji_name, Some(&hostname), image, Some(&tag.id), &tag.updated, - ).await? + ).await { + Ok(emoji) => emoji, + Err(DatabaseError::AlreadyExists(_)) => { + log::warn!("emoji name is not unique: {}", emoji_name); + return Ok(None); + }, + Err(other_error) => return Err(other_error.into()), + } }; Ok(Some(emoji)) }