X-Git-Url: https://delta.frontaccounting.com/gitweb/?a=blobdiff_plain;f=includes%2Fpackages.inc;h=bb7a096e0d79aaf8f0d711a25e3867cca07b77d8;hb=825a4b279d6af05322188299f6a3967d2562f1e9;hp=6e97e7d1cc8d787eae3e072287774278bdc4aeca;hpb=1db01112d160c1e3c9a6c48cbe3a2b829c102b2e;p=fa-stable.git diff --git a/includes/packages.inc b/includes/packages.inc index 6e97e7d1..bb7a096e 100644 --- a/includes/packages.inc +++ b/includes/packages.inc @@ -289,14 +289,19 @@ function get_pkg_or_list($type = null, $pkgname = null, $filter=array(), $outkey $data = file_get_contents($loclist); $cert = file_get_contents(PUBKEY_PATH.'/FA.pem'); if (!openssl_verify($data, $sig, $cert)) { - if ($refresh) - @unlink($loclist); - else { + if ($refresh) { + if (!@unlink($loclist)) + { + display_error(sprintf(_("Cannot delete outdated '%s' file."), $loclist)); + return null; + } + } else { display_error(_('Release file in repository is invalid, or public key is outdated.')); return null; } } else $refresh = false; + } while($refresh); $Release = get_control_file($loclist, 'Filename'); @@ -319,9 +324,12 @@ function get_pkg_or_list($type = null, $pkgname = null, $filter=array(), $outkey $refresh = false; } if ($parms['SHA1sum'] != sha1_file($locindex)) { // check subdir index consistency - if ($refresh) - @unlink($locindex); - else { + if ($refresh) { + if (!@unlink($locindex)) { + display_error(sprintf(_("Cannot delete outdated '%s' file."), $locindex)); + return null; + } + } else { display_error(sprintf( _("Security alert: broken index file in repository '%s'. Please inform repository administrator about this issue."), $fname)); return null;