From: Hypolite Petovan <hypolite@mrpetovan.com>
Date: Sat, 2 Dec 2023 21:51:35 +0000 (-0500)
Subject: Check media_attributes keys before using them in Mastodon\Statuses
X-Git-Url: https://git.mxchange.org/?a=commitdiff_plain;h=6c7dee4bcdf9c877c90a7d82ab38b251fb40b9bd;p=friendica.git

Check media_attributes keys before using them in Mastodon\Statuses

- Address https://github.com/friendica/friendica/issues/13157#issuecomment-1832575517
---

diff --git a/src/Module/Api/Mastodon/Statuses.php b/src/Module/Api/Mastodon/Statuses.php
index 84eaadfe5e..0ebd616089 100644
--- a/src/Module/Api/Mastodon/Statuses.php
+++ b/src/Module/Api/Mastodon/Statuses.php
@@ -122,8 +122,8 @@ class Statuses extends BaseApi
 		$existing_media = array_column(Post\Media::getByURIId($post['uri-id'], [Post\Media::AUDIO, Post\Media::VIDEO, Post\Media::IMAGE]), 'id');
 
 		foreach ($request['media_attributes'] as $attributes) {
-			if (in_array($attributes['id'], $existing_media)) {
-				Post\Media::updateById(['description' => $attributes['description']], $attributes['id']);
+			if (!empty($attributes['id']) && in_array($attributes['id'], $existing_media)) {
+				Post\Media::updateById(['description' => $attributes['description'] ?? null], $attributes['id']);
 			}
 		}
 
@@ -227,7 +227,7 @@ class Statuses extends BaseApi
 						break;
 					}
 				}
-			
+
 				if (!empty($owner['allow_cid'] . $owner['allow_gid'] . $owner['deny_cid'] . $owner['deny_gid'])) {
 					$item['allow_cid'] = $owner['allow_cid'];
 					$item['allow_gid'] = $owner['allow_gid'];
@@ -306,7 +306,7 @@ class Statuses extends BaseApi
 		}
 
 		$item = DI::contentItem()->expandTags($item, $request['visibility'] == 'direct');
-		
+
 		if (!empty($request['media_ids'])) {
 			$item = $this->storeMediaIds($request['media_ids'], $item);
 		}