Fix for ticket 2513: "Can't linkify" error when some links are shortened
When bogus SSL sites etc were hit through a shortening redirect, sometimes link resolution kinda blew up and the user would get a "Can't linkify" error, aborting their post. Now catching this case and just passing through the URL without attempting to resolve it. Could benefit from an overall scrubbing of the freaky link/attachment code though...! :) http://status.net/open-source/issues/2513
This commit is contained in:
parent
78eea352b4
commit
f7d599f8ea
@ -210,6 +210,14 @@ class File_redirection extends Memcached_DataObject
|
|||||||
} else if (is_string($redir_data)) {
|
} else if (is_string($redir_data)) {
|
||||||
// The file is a known redirect target.
|
// The file is a known redirect target.
|
||||||
$file = File::staticGet('url', $redir_data);
|
$file = File::staticGet('url', $redir_data);
|
||||||
|
if (empty($file)) {
|
||||||
|
// @fixme should we save a new one?
|
||||||
|
// this case was triggering sometimes for redirects
|
||||||
|
// with unresolvable targets; found while fixing
|
||||||
|
// "can't linkify" bugs with shortened links to
|
||||||
|
// SSL sites with cert issues.
|
||||||
|
return null;
|
||||||
|
}
|
||||||
$file_id = $file->id;
|
$file_id = $file->id;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
@ -830,7 +830,10 @@ function common_linkify($url) {
|
|||||||
} elseif (is_string($longurl_data)) {
|
} elseif (is_string($longurl_data)) {
|
||||||
$longurl = $longurl_data;
|
$longurl = $longurl_data;
|
||||||
} else {
|
} else {
|
||||||
throw new ServerException("Can't linkify url '$url'");
|
// Unable to reach the server to verify contents, etc
|
||||||
|
// Just pass the link on through for now.
|
||||||
|
common_log(LOG_ERR, "Can't linkify url '$url'");
|
||||||
|
$longurl = $url;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$attrs = array('href' => $canon, 'title' => $longurl, 'rel' => 'external');
|
$attrs = array('href' => $canon, 'title' => $longurl, 'rel' => 'external');
|
||||||
|
Loading…
Reference in New Issue
Block a user