X-Git-Url: https://delta.frontaccounting.com/gitweb/?a=blobdiff_plain;f=includes%2Fpackages.inc;h=bb7a096e0d79aaf8f0d711a25e3867cca07b77d8;hb=825a4b279d6af05322188299f6a3967d2562f1e9;hp=cc387f64425d121491be0cfa0497ad5ed31d4ef8;hpb=04f6bf0a6ad4dc31a0796d896e3693559e65d339;p=fa-stable.git diff --git a/includes/packages.inc b/includes/packages.inc index cc387f64..bb7a096e 100644 --- a/includes/packages.inc +++ b/includes/packages.inc @@ -187,7 +187,7 @@ function get_control_file($file, $index = false) { if ($index !== true) { if ($index === false) break; if (!isset($pkg[$index])) { - display_error(_("No key field '$index' in file '$file'")); + display_error(sprintf(_("No key field '%s' in file '%s'"), $index, $file)); return null; } $repo[$pkg[$index]] = $pkg; @@ -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;