Разработчик приложения «Сообщения» для iOS Гильерме Рамбо сообщил о баге, который не позволяет пользователям отправлять голосовые сообщения, содержащие символ амперсанд (&). Таким образом, юзеры не могут отправлять аудио с упоминанием, к примеру, брендов, таких как H&M или Tiffany & Co.

После отправки сообщения оно отобразится на iPhone, а получатель увидит три точки, как будто пользователь что-то печатает. В конечном итоге сообщение исчезает через несколько секунд, так и не появившись у получателя.
Как оказалось, проблема не в самих аудиосообщениях, а в расшифровке, которая сопровождает их. Механизм транскрипции Apple понимает настоящие названия компаний, например H&M или Dave & Buster's, отображая их с амперсандом, а не с союзом «и». Проблема кроется в символе амперсанда, поскольку механизм транскрипции Apple не отображает его правильно в XHTML, что приводит к ошибке синтаксического анализа на устройстве получателя.
XHTML — это более строгая версия HTML, основанная на XML и допускающая пользовательские теги, если документ совместим со стандартом XML. Символ амперсанда имеет особое значение в HTML/XHTML. Он используется для обозначения специальных символов, которые обычно интерпретируются как код, поэтому должен записываться как «&».
<html>
<body>
<FILE
name="Audio Message.caf"
width="0"
height="0"
datasize="7206"
uti-type="com.apple.coreaudio-format"
inline-attachment="ia-0"
audio-transcription="Dave & Buster's"
/>
</body>
</html>
Система транскрипции Apple, однако, не использует это обозначение, и анализатор пытается обнаружить специальный код после амперсанда, обнаруживает ошибку и прекращает анализ содержимого.
BlastDoor contained an explosion with error:
BlastDoor.Explosion(
domain: "com.apple.BlastDoor.TextMessage.Message",
errorType: "XHTMLParseFailure",
keyPath: nil
)
Ошибка синтаксического анализа запускает функцию BlastDoor Messages от Apple, которая защищает пользователей от вредоносных сообщений.

Рамбо отмечает, что это даже не баг, а ошибка демонстрирует, что механизм BlastDoor от Apple работает так, как задумано. По его словам, функция защищает получателя от эксплойта, который мог бы злоупотребить этим типом проблемы.