Browse Source

Fix potential bugs without expected behavior change

- Fix uninitialized variables
- Fix potentially not set variables
- Fix wrong parameter default value
- Fix method scope
- Fix missing return value
pull/6482/head
Hypolite Petovan 3 years ago
parent
commit
7f2dc40601
35 changed files with 87 additions and 67 deletions
  1. +9
    -10
      include/conversation.php
  2. +8
    -4
      include/enotify.php
  3. +1
    -1
      mod/admin.php
  4. +1
    -0
      mod/dfrn_notify.php
  5. +3
    -3
      mod/dfrn_request.php
  6. +3
    -0
      mod/directory.php
  7. +3
    -5
      mod/dirfind.php
  8. +2
    -0
      mod/fbrowser.php
  9. +1
    -1
      mod/feedtest.php
  10. +1
    -0
      mod/help.php
  11. +1
    -1
      mod/ignored.php
  12. +2
    -0
      mod/invite.php
  13. +1
    -1
      mod/item.php
  14. +2
    -1
      mod/msearch.php
  15. +2
    -0
      mod/notifications.php
  16. +2
    -0
      mod/notify.php
  17. +4
    -4
      mod/openid.php
  18. +3
    -3
      mod/poco.php
  19. +1
    -0
      mod/suggest.php
  20. +3
    -1
      mod/worker.php
  21. +4
    -4
      mod/xrd.php
  22. +5
    -5
      src/App.php
  23. +2
    -0
      src/Core/Console/DatabaseStructure.php
  24. +2
    -0
      src/Core/NotificationsManager.php
  25. +1
    -1
      src/Model/Attach.php
  26. +4
    -9
      src/Model/Contact.php
  27. +1
    -1
      src/Model/Conversation.php
  28. +3
    -1
      src/Model/Event.php
  29. +3
    -3
      src/Model/Item.php
  30. +1
    -1
      src/Module/Proxy.php
  31. +1
    -1
      src/Protocol/ActivityPub/Transmitter.php
  32. +2
    -2
      src/Protocol/DFRN.php
  33. +3
    -3
      src/Protocol/OStatus.php
  34. +1
    -0
      src/Util/Network.php
  35. +1
    -1
      src/Util/Strings.php

+ 9
- 10
include/conversation.php View File

@ -176,6 +176,7 @@ function localize_item(&$item)
$plink = '[url=' . $obj['plink'] . ']' . $post_type . '[/url]';
$bodyverb = '';
if (activity_match($item['verb'], ACTIVITY_LIKE)) {
$bodyverb = L10n::t('%1$s likes %2$s\'s %3$s');
} elseif (activity_match($item['verb'], ACTIVITY_DISLIKE)) {
@ -1043,25 +1044,22 @@ function format_like($cnt, array $arr, $type, $id) {
}
}
$phrase = '';
if ($cnt > 1) {
$total = count($arr);
if ($total >= MAX_LIKERS) {
$arr = array_slice($arr, 0, MAX_LIKERS - 1);
}
if ($total < MAX_LIKERS) {
$last = L10n::t('and') . ' ' . $arr[count($arr)-1];
$arr2 = array_slice($arr, 0, -1);
$str = implode(', ', $arr2) . ' ' . $last;
}
if ($total >= MAX_LIKERS) {
$str = implode(', ', $arr);
$str .= L10n::t('and %d other people', $total - MAX_LIKERS);
$likers = implode(', ', $arr2) . ' ' . $last;
} else {
$arr = array_slice($arr, 0, MAX_LIKERS - 1);
$likers = implode(', ', $arr);
$likers .= L10n::t('and %d other people', $total - MAX_LIKERS);
}
$likers = $str;
$spanatts = "class=\"fakelink\" onclick=\"openClose('{$type}list-$id');\"";
$explikers = '';
switch ($type) {
case 'like':
$phrase = L10n::t('<span %1$s>%2$d people</span> like this', $spanatts, $cnt);
@ -1497,6 +1495,7 @@ function get_responses(array $conv_responses, array $response_verbs, $ob, array
function get_response_button_text($v, $count)
{
$return = '';
switch ($v) {
case 'like':
$return = L10n::tt('Like', 'Likes', $count);


+ 8
- 4
include/enotify.php View File

@ -120,6 +120,12 @@ function notification($params)
}
$epreamble = '';
$preamble = '';
$subject = '';
$sitelink = '';
$tsitelink = '';
$hsitelink = '';
$itemlink = '';
if ($params['type'] == NOTIFY_MAIL) {
$itemlink = $siteurl.'/message/'.$params['item']['id'];
@ -453,10 +459,6 @@ function notification($params)
$body = $params['body'];
$sitelink = "";
$tsitelink = "";
$hsitelink = "";
$itemlink = "";
$show_in_notification_page = false;
}
@ -487,6 +489,8 @@ function notification($params)
$hsitelink = $h['hsitelink'];
$itemlink = $h['itemlink'];
$notify_id = 0;
if ($show_in_notification_page) {
Logger::log("adding notification entry", Logger::DEBUG);
do {


+ 1
- 1
mod/admin.php View File

@ -1298,7 +1298,7 @@ function admin_page_site_post(App $a)
Config::set('system', 'banner', $banner);
}
if ($info == "") {
if (empty($info)) {
Config::delete('config', 'info');
} else {
Config::set('config', 'info', $info);


+ 1
- 0
mod/dfrn_notify.php View File

@ -300,6 +300,7 @@ function dfrn_notify_content(App $a) {
break;
default:
$status = 1;
$my_id = '';
break;
}


+ 3
- 3
mod/dfrn_request.php View File

@ -34,9 +34,9 @@ function dfrn_request_init(App $a)
{
if ($a->argc > 1) {
$which = $a->argv[1];
Profile::load($a, $which);
}
Profile::load($a, $which);
return;
}
@ -168,7 +168,7 @@ function dfrn_request_post(App $a)
$r = q("SELECT `id`, `network` FROM `contact` WHERE `uid` = %d AND `url` = '%s' AND `site-pubkey` = '%s' LIMIT 1",
intval(local_user()),
DBA::escape($dfrn_url),
$parms['key'] // this was already escaped
defaults($parms, 'key', '') // Potentially missing
);
if (DBA::isResult($r)) {
Group::addMember(User::getDefaultGroup(local_user(), $r[0]["network"]), $r[0]['id']);
@ -187,7 +187,7 @@ function dfrn_request_post(App $a)
$dfrn_request = $contact_record['request'];
}
if (strlen($dfrn_request) && strlen($confirm_key)) {
if (!empty($dfrn_request) && strlen($confirm_key)) {
Network::fetchUrl($dfrn_request . '?confirm_key=' . $confirm_key);
}


+ 3
- 0
mod/directory.php View File

@ -111,8 +111,11 @@ function directory_content(App $a)
$photo = 'photo';
}
$entries = [];
while ($rr = DBA::fetch($r)) {
while ($rr = DBA::fetch($r)) {
$itemurl = (($rr['addr'] != "") ? $rr['addr'] : $rr['profile_url']);
$profile_link = $rr['profile_url'];


+ 3
- 5
mod/dirfind.php View File

@ -179,21 +179,19 @@ function dirfind_content(App $a, $prefix = "") {
// Add found profiles from the global directory to the local directory
Worker::add(PRIORITY_LOW, 'DiscoverPoCo', "dirsearch", urlencode($search));
} else {
} elseif (strlen(Config::get('system','directory'))) {
$p = (($pager->getPage() != 1) ? '&p=' . $pager->getPage() : '');
if (strlen(Config::get('system','directory'))) {
$x = Network::fetchUrl(get_server() . '/lsearch?f=' . $p . '&search=' . urlencode($search));
}
$x = Network::fetchUrl(get_server() . '/lsearch?f=' . $p . '&search=' . urlencode($search));
$j = json_decode($x);
$pager->setItemsPerPage($j->items_page);
}
if (!empty($j->results)) {
$id = 0;
$entries = [];
foreach ($j->results as $jj) {
$alt_text = "";


+ 2
- 0
mod/fbrowser.php View File

@ -29,6 +29,8 @@ function fbrowser_content(App $a)
$template_file = "filebrowser.tpl";
$o = '';
switch ($a->argv[1]) {
case "image":
$path = [["", L10n::t("Photos")]];


+ 1
- 1
mod/feedtest.php View File

@ -35,7 +35,7 @@ function feedtest_content(App $a)
$import_result = Feed::import($xml, $importer, $contact, $dummy, true);
$result = [
'input' => text_highlight($xml, 'xml'),
'input' => $xml,
'output' => var_export($import_result, true),
];
}


+ 1
- 0
mod/help.php View File

@ -33,6 +33,7 @@ function help_content(App $a)
Nav::setSelected('help');
$text = '';
$filename = '';
if ($a->argc > 1) {
$path = '';


+ 1
- 1
mod/ignored.php View File

@ -14,7 +14,7 @@ function ignored_init(App $a)
$message_id = intval($a->argv[1]);
}
if (!$message_id) {
if (empty($message_id)) {
exit();
}


+ 2
- 0
mod/invite.php View File

@ -41,6 +41,8 @@ function invite_post(App $a)
$message = !empty($_POST['message']) ? Strings::escapeTags(trim($_POST['message'])) : '';
$total = 0;
$invitation_only = false;
$invites_remaining = null;
if (Config::get('system', 'invitation_only')) {
$invitation_only = true;


+ 1
- 1
mod/item.php View File

@ -1049,7 +1049,7 @@ function handle_tag(&$body, &$inform, &$str_tags, $profile_uid, $tag, $network =
* Status.Net seems to require the numeric ID URL in a mention if the person isn't
* subscribed to you. But the nickname URL is OK if they are. Grrr. We'll tag both.
*/
if (strlen($alias)) {
if (!empty($alias)) {
$newtag = '@[url=' . $alias . ']' . $newname . '[/url]';
if (!stripos($str_tags, '[url=' . $alias . ']')) {
if (strlen($str_tags)) {


+ 2
- 1
mod/msearch.php View File

@ -20,6 +20,8 @@ function msearch_post(App $a)
exit();
}
$total = 0;
$count_stmt = DBA::p(
"SELECT COUNT(*) AS `total`
FROM `profile`
@ -29,7 +31,6 @@ function msearch_post(App $a)
AND MATCH(`pub_keywords`) AGAINST (?)",
$search
);
if (DBA::isResult($count_stmt)) {
$row = DBA::fetch($count_stmt);
$total = $row['total'];


+ 2
- 0
mod/notifications.php View File

@ -92,6 +92,8 @@ function notifications_content(App $a)
$notif_header = L10n::t('Notifications');
$all = false;
// Get introductions
if ((($a->argc > 1) && ($a->argv[1] == 'intros')) || (($a->argc == 1))) {
Nav::setSelected('introductions');


+ 2
- 0
mod/notify.php View File

@ -58,6 +58,8 @@ function notify_content(App $a)
return Login::form();
}
$notif_content = '';
$nm = new NotificationsManager();
$notif_tpl = Renderer::getMarkupTemplate('notifications.tpl');


+ 4
- 4
mod/openid.php View File

@ -93,17 +93,17 @@ function openid_content(App $a) {
}
}
}
if ($nick) {
if (!empty($nick)) {
$args .= '&nickname=' . urlencode($nick);
}
elseif ($first) {
elseif (!empty($first)) {
$args .= '&nickname=' . urlencode($first);
}
if ($photosq) {
if (!empty($photosq)) {
$args .= '&photo=' . urlencode($photosq);
}
elseif ($photo) {
elseif (!empty($photo)) {
$args .= '&photo=' . urlencode($photo);
}


+ 3
- 3
mod/poco.php View File

@ -26,9 +26,9 @@ function poco_init(App $a) {
}
if ($a->argc > 1) {
$user = Strings::escapeTags(trim($a->argv[1]));
$nickname = Strings::escapeTags(trim($a->argv[1]));
}
if (empty($user)) {
if (empty($nickname)) {
$c = q("SELECT * FROM `pconfig` WHERE `cat` = 'system' AND `k` = 'suggestme' AND `v` = 1");
if (!DBA::isResult($c)) {
System::httpExit(401);
@ -70,7 +70,7 @@ function poco_init(App $a) {
if (! $system_mode && ! $global) {
$users = q("SELECT `user`.*,`profile`.`hide-friends` from user left join profile on `user`.`uid` = `profile`.`uid`
where `user`.`nickname` = '%s' and `profile`.`is-default` = 1 limit 1",
DBA::escape($user)
DBA::escape($nickname)
);
if (! DBA::isResult($users) || $users[0]['hidewall'] || $users[0]['hide-friends']) {
System::httpExit(404);


+ 1
- 0
mod/suggest.php View File

@ -77,6 +77,7 @@ function suggest_content(App $a)
}
$id = 0;
$entries = [];
foreach ($r as $rr) {


+ 3
- 1
mod/worker.php View File

@ -38,7 +38,9 @@ function worker_init()
Worker::callWorker();
if ($r = Worker::workerProcess()) {
$passing_slow = false;
if ($r = Worker::workerProcess($passing_slow)) {
// On most configurations this parameter wouldn't have any effect.
// But since it doesn't destroy anything, we just try to get more execution time in any way.
set_time_limit(0);


+ 4
- 4
mod/xrd.php View File

@ -63,13 +63,13 @@ function xrd_init(App $a)
}
if ($mode == 'xml') {
xrd_xml($a, $addr, $alias, $profile_url, $user);
xrd_xml($addr, $alias, $profile_url, $user);
} else {
xrd_json($a, $addr, $alias, $profile_url, $user);
xrd_json($addr, $alias, $profile_url, $user);
}
}
function xrd_json($a, $uri, $alias, $profile_url, $r)
function xrd_json($uri, $alias, $profile_url, $r)
{
$salmon_key = Salmon::salmonKey($r['spubkey']);
@ -100,7 +100,7 @@ function xrd_json($a, $uri, $alias, $profile_url, $r)
exit();
}
function xrd_xml($a, $uri, $alias, $profile_url, $r)
function xrd_xml($uri, $alias, $profile_url, $r)
{
$salmon_key = Salmon::salmonKey($r['spubkey']);


+ 5
- 5
src/App.php View File

@ -1869,14 +1869,14 @@ class App
// And then append it to the target
$target->documentElement->appendChild($item);
}
}
if (isset($_GET["mode"]) && ($_GET["mode"] == "raw")) {
header("Content-type: text/html; charset=utf-8");
if ($_GET["mode"] == "raw") {
header("Content-type: text/html; charset=utf-8");
echo substr($target->saveHTML(), 6, -8);
echo substr($target->saveHTML(), 6, -8);
exit();
exit();
}
}
$page = $this->page;


+ 2
- 0
src/Core/Console/DatabaseStructure.php View File

@ -79,6 +79,8 @@ HELP;
DBStructure::convertToInnoDB();
$output = ob_get_clean();
break;
default:
$output = 'Unknown command: ' . $this->getArgument(0);
}
$this->out($output);


+ 2
- 0
src/Core/NotificationsManager.php View File

@ -637,6 +637,8 @@ class NotificationsManager extends BaseObject
{
$knowyou = '';
$arr = [];
foreach ($intros as $it) {
// There are two kind of introduction. Contacts suggested by other contacts and normal connection requests.
// We have to distinguish between these two because they use different data.


+ 1
- 1
src/Model/Attach.php View File

@ -232,7 +232,7 @@ class Attach extends BaseObject
* @return boolean True on success
* @throws \Friendica\Network\HTTPException\InternalServerErrorException
*/
public function storeFile($src, $uid, $filename = '', $allow_cid = '', $allow_gid = '', $deny_cid = '', $deny_gid = '')
public static function storeFile($src, $uid, $filename = '', $allow_cid = '', $allow_gid = '', $deny_cid = '', $deny_gid = '')
{
if ($filename === '') {
$filename = basename($src);


+ 4
- 9
src/Model/Contact.php View File

@ -35,12 +35,6 @@ class Contact extends BaseObject
* @deprecated since version 2019.03
* @see User::PAGE_FLAGS_NORMAL
*/
const PAGE_NORMAL = 0;
const PAGE_SOAPBOX = 1;
const PAGE_COMMUNITY = 2;
const PAGE_FREELOVE = 3;
const PAGE_BLOG = 4;
const PAGE_PRVGROUP = 5;
const PAGE_NORMAL = User::PAGE_FLAGS_NORMAL;
/**
* @deprecated since version 2019.03
@ -1205,9 +1199,10 @@ class Contact extends BaseObject
$contact = DBA::selectFirst('contact', $fields, ['addr' => $url]);
}
// The link could be provided as http although we stored it as https
$ssl_url = str_replace('http://', 'https://', $url);
if (!DBA::isResult($contact)) {
// The link could be provided as http although we stored it as https
$ssl_url = str_replace('http://', 'https://', $url);
$condition = ['alias' => [$url, Strings::normaliseLink($url), $ssl_url]];
$contact = DBA::selectFirst('contact', $fields, $condition);
}
@ -1426,7 +1421,7 @@ class Contact extends BaseObject
{
$a = self::getApp();
$cid = Self::getIdForURL($contact_url);
$cid = self::getIdForURL($contact_url);
$contact = DBA::selectFirst('contact', ['contact-type', 'network'], ['id' => $cid]);
if (!DBA::isResult($contact)) {


+ 1
- 1
src/Model/Conversation.php View File

@ -77,7 +77,7 @@ class Conversation
}
// Update structure data all the time but the source only when its from a better protocol.
if (empty($conversation['source']) || (!empty($old_conv['source']) &&
($old_conv['protocol'] < defaults($conversation, 'protocol', PARCEL_UNKNOWN)))) {
($old_conv['protocol'] < defaults($conversation, 'protocol', self::PARCEL_UNKNOWN)))) {
unset($conversation['protocol']);
unset($conversation['source']);
}


+ 3
- 1
src/Model/Event.php View File

@ -48,8 +48,10 @@ class Event extends BaseObject
}
if ($simple) {
$o = '';
if (!empty($event['summary'])) {
$o = "<h3>" . BBCode::convert(Strings::escapeHtml($event['summary']), false, $simple) . "</h3>";
$o .= "<h3>" . BBCode::convert(Strings::escapeHtml($event['summary']), false, $simple) . "</h3>";
}
if (!empty($event['desc'])) {


+ 3
- 3
src/Model/Item.php View File

@ -1252,6 +1252,8 @@ class Item extends BaseObject
{
$orig_item = $item;
$priority = PRIORITY_HIGH;
// If it is a posting where users should get notifications, then define it as wall posting
if ($notify) {
$item['wall'] = 1;
@ -1261,8 +1263,6 @@ class Item extends BaseObject
if (is_int($notify)) {
$priority = $notify;
} else {
$priority = PRIORITY_HIGH;
}
} else {
$item['network'] = trim(defaults($item, 'network', Protocol::PHANTOM));
@ -1850,7 +1850,7 @@ class Item extends BaseObject
$cmd = 'wall-new';
}
Worker::add(['priority' => PRIORITY_HIGH, 'dont_fork' => true], 'Notifier', $cmd, $current_post);
Worker::add(['priority' => $priority, 'dont_fork' => true], 'Notifier', $cmd, $current_post);
}
return $current_post;


+ 1
- 1
src/Module/Proxy.php View File

@ -293,7 +293,7 @@ class Proxy extends BaseModule
*
*/
private static function responseError() {
header('Content-type: ' . $img->getType());
header('Content-type: image/png');
echo file_get_contents('images/blank.png');
exit();
}


+ 1
- 1
src/Protocol/ActivityPub/Transmitter.php View File

@ -1238,7 +1238,7 @@ class Transmitter
Logger::log('Sending activity ' . $activity . ' to ' . $target . ' for user ' . $uid, Logger::DEBUG);
$signed = LDSignature::sign($data, $owner);
HTTPSignature::transmit($signed, $profile['inbox'], $uid);
return HTTPSignature::transmit($signed, $profile['inbox'], $uid);
}
/**


+ 2
- 2
src/Protocol/DFRN.php View File

@ -1963,6 +1963,7 @@ class DFRN
DBA::escape($suggest["photo"]),
DBA::escape($suggest["request"])
);
$fid = $r[0]["id"];
}
$condition = ['url' => $suggest["url"], 'name' => $suggest["name"], 'request' => $suggest["request"]];
@ -1977,8 +1978,6 @@ class DFRN
exit();
}
$fid = $r[0]["id"];
$hash = Strings::getRandomHex();
q(
@ -2219,6 +2218,7 @@ class DFRN
if (($xo->type == ACTIVITY_OBJ_PERSON) && ($xo->id)) {
// somebody was poked/prodded. Was it me?
$Blink = '';
foreach ($xo->link as $l) {
$atts = $l->attributes();
switch ($atts["rel"]) {


+ 3
- 3
src/Protocol/OStatus.php View File

@ -53,7 +53,7 @@ class OStatus
* @throws \Friendica\Network\HTTPException\InternalServerErrorException
* @throws \ImagickException
*/
private static function fetchAuthor(DOMXPath $xpath, $context, array $importer, array &$contact = null, $onlyfetch)
private static function fetchAuthor(DOMXPath $xpath, $context, array $importer, array &$contact, $onlyfetch)
{
$author = [];
$author["author-link"] = XML::getFirstNodeValue($xpath, 'atom:author/atom:uri/text()', $context);
@ -303,7 +303,7 @@ class OStatus
* @throws \Friendica\Network\HTTPException\InternalServerErrorException
* @throws \ImagickException
*/
public static function import($xml, array $importer, array &$contact = null, &$hub)
public static function import($xml, array $importer, array &$contact, &$hub)
{
self::process($xml, $importer, $contact, $hub);
}
@ -322,7 +322,7 @@ class OStatus
* @throws \Friendica\Network\HTTPException\InternalServerErrorException
* @throws \ImagickException
*/
private static function process($xml, array $importer, array &$contact = null, &$hub, $stored = false, $initialize = true)
private static function process($xml, array $importer, array &$contact, &$hub, $stored = false, $initialize = true)
{
if ($initialize) {
self::$itemlist = [];


+ 1
- 0
src/Util/Network.php View File

@ -101,6 +101,7 @@ class Network
return CurlResult::createErrorCurl(substr($url, 0, 200));
}
$parts2 = [];
$parts = parse_url($url);
$path_parts = explode('/', defaults($parts, 'path', ''));
foreach ($path_parts as $part) {


+ 1
- 1
src/Util/Strings.php View File

@ -295,7 +295,7 @@ class Strings
*
* @return string normalized OpenId Identity
*/
function normaliseOpenID($s)
public static function normaliseOpenID($s)
{
return trim(str_replace(['http://', 'https://'], ['', ''], $s), '/');
}


Loading…
Cancel
Save