import_xchan_photo: check the return headers to ensure it's an image content-type of some form as imagick chucks a wobbly if you try to initialise an image with an html error page.
This commit is contained in:
parent
9bde18492a
commit
9ab335626c
@ -591,12 +591,29 @@ function import_xchan_photo($photo,$xchan,$thing = false) {
|
|||||||
if(! $type)
|
if(! $type)
|
||||||
$type = 'image/jpeg';
|
$type = 'image/jpeg';
|
||||||
|
|
||||||
|
|
||||||
$result = z_fetch_url($photo,true);
|
$result = z_fetch_url($photo,true);
|
||||||
|
|
||||||
if($result['success'])
|
if($result['success']) {
|
||||||
$img_str = $result['body'];
|
$img_str = $result['body'];
|
||||||
|
|
||||||
|
$h = explode("\n",$result['header']);
|
||||||
|
if($h) {
|
||||||
|
foreach($h as $hl) {
|
||||||
|
if(stristr($hl,'content-type:')) {
|
||||||
|
if(! stristr($hl,'image/')) {
|
||||||
|
$photo_failure = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$photo_failure = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(! $photo_failure) {
|
||||||
$img = photo_factory($img_str, $type);
|
$img = photo_factory($img_str, $type);
|
||||||
if($img->is_valid()) {
|
if($img->is_valid()) {
|
||||||
$width = $img->getWidth();
|
$width = $img->getWidth();
|
||||||
@ -653,6 +670,7 @@ function import_xchan_photo($photo,$xchan,$thing = false) {
|
|||||||
logger('import_xchan_photo: invalid image from ' . $photo);
|
logger('import_xchan_photo: invalid image from ' . $photo);
|
||||||
$photo_failure = true;
|
$photo_failure = true;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
if($photo_failure) {
|
if($photo_failure) {
|
||||||
$photo = $a->get_baseurl() . '/' . get_default_profile_photo();
|
$photo = $a->get_baseurl() . '/' . get_default_profile_photo();
|
||||||
$thumb = $a->get_baseurl() . '/' . get_default_profile_photo(80);
|
$thumb = $a->get_baseurl() . '/' . get_default_profile_photo(80);
|
||||||
|
@ -2866,7 +2866,7 @@ function build_sync_packet($uid = 0, $packet = null, $groups_changed = false) {
|
|||||||
|
|
||||||
// don't pass these elements, they should not be synchronised
|
// don't pass these elements, they should not be synchronised
|
||||||
|
|
||||||
$disallowed = array('channel_id','channel_account_id','channel_primary','channel_prvkey','channel_address');
|
$disallowed = array('channel_id','channel_account_id','channel_primary','channel_prvkey','channel_address','channel_deleted','channel_removed','channel_system');
|
||||||
|
|
||||||
if(in_array($k,$disallowed))
|
if(in_array($k,$disallowed))
|
||||||
continue;
|
continue;
|
||||||
|
Reference in New Issue
Block a user