From 971ce54e68f667345a59668736a3b3ca07af509d Mon Sep 17 00:00:00 2001 From: Dobrunia Kostrigin <48620984+Dobrunia@users.noreply.github.com> Date: Wed, 28 Jan 2026 18:05:29 +0300 Subject: [PATCH] fix(catchers): validate beforeSend return value to avoid sending invalid payload --- composer.json | 2 +- src/Handler.php | 9 +++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/composer.json b/composer.json index 2f78b15..4cd09ff 100644 --- a/composer.json +++ b/composer.json @@ -3,7 +3,7 @@ "description": "PHP errors Catcher module for Hawk.so", "keywords": ["hawk", "php", "error", "catcher"], "type": "library", - "version": "2.2.10", + "version": "2.2.11", "license": "MIT", "require": { "ext-curl": "*", diff --git a/src/Handler.php b/src/Handler.php index e3b26ff..1aba0ed 100644 --- a/src/Handler.php +++ b/src/Handler.php @@ -323,10 +323,15 @@ public function buildEvent(EventPayload $eventPayload): ?Event $beforeSendCallback = $this->options->getBeforeSend(); if ($beforeSendCallback) { - $eventPayload = $beforeSendCallback($eventPayload); - if ($eventPayload === null) { + $beforeSendResult = $beforeSendCallback($eventPayload); + if ($beforeSendResult === null) { return null; } + if ($beforeSendResult instanceof EventPayload) { + $eventPayload = $beforeSendResult; + } else { + error_log('[Hawk] beforeSend must return EventPayload or null. Received: ' . gettype($beforeSendResult)); + } } return new Event(