99use PhpList \Core \Domain \Messaging \Model \Message ;
1010use PhpList \Core \Domain \Messaging \Repository \MessageDataRepository ;
1111use PhpList \Core \Domain \Messaging \Repository \MessageRepository ;
12+ use Psr \Log \LoggerInterface ;
1213
1314class MessageDataLoader
1415{
@@ -20,6 +21,7 @@ public function __construct(
2021 private readonly ConfigProvider $ configProvider ,
2122 private readonly MessageDataRepository $ messageDataRepository ,
2223 private readonly MessageRepository $ messageRepository ,
24+ private readonly LoggerInterface $ logger ,
2325 private readonly int $ defaultMessageAge ,
2426 ) {
2527 $ this ->messageFromAddress = $ configProvider ->getValue (ConfigOption::MessageFromAddress);
@@ -45,6 +47,8 @@ public function __invoke(Message $message): array
4547
4648 private function getDateArray (?int $ timestamp = null ): array
4749 {
50+ $ timestamp = $ timestamp ?? time ();
51+
4852 return [
4953 'year ' => date ('Y ' , $ timestamp ),
5054 'month ' => date ('m ' , $ timestamp ),
@@ -113,6 +117,10 @@ private function mergeStoredMessageData(array &$messageData, Message $message):
113117 foreach ($ storedMessageData as $ storedMessageDatum ) {
114118 if (str_starts_with ($ storedMessageDatum ->getData (), 'SER: ' )) {
115119 $ unserialized = unserialize (substr ($ storedMessageDatum ->getData (), 4 ), ['allowed_classes ' => false ]);
120+ if (!is_array ($ unserialized )) {
121+ $ this ->logger ->warning ('Invalid serialized data for message ID: ' . $ message ->getId ());
122+ continue ;
123+ }
116124 array_walk_recursive ($ unserialized , function (&$ val ) {
117125 $ val = stripslashes ($ val );
118126 });
@@ -190,7 +198,7 @@ private function normaliseFromField(array &$messageData, ?string $defaultFrom):
190198 $ messageData ['fromname ' ] = trim ($ messageData ['fromname ' ]);
191199
192200 // erase double spacing
193- while (strpos ($ messageData ['fromname ' ], ' ' )) {
201+ while (str_contains ($ messageData ['fromname ' ], ' ' )) {
194202 $ messageData ['fromname ' ] = str_replace (' ' , ' ' , $ messageData ['fromname ' ]);
195203 }
196204
0 commit comments