firmware: lock down FreeBSD repo and fix minor annoyance

This commit is contained in:
Franco Fichtner 2023-12-19 10:51:25 +01:00
parent a695054644
commit ebd5696f1c
3 changed files with 37 additions and 2 deletions

1
plist
View File

@ -1009,6 +1009,7 @@
/usr/local/opnsense/scripts/firmware/register.php
/usr/local/opnsense/scripts/firmware/reinstall.sh
/usr/local/opnsense/scripts/firmware/remove.sh
/usr/local/opnsense/scripts/firmware/repos/FreeBSD.php
/usr/local/opnsense/scripts/firmware/repos/OPNsense.php
/usr/local/opnsense/scripts/firmware/repos/README
/usr/local/opnsense/scripts/firmware/resync.sh

View File

@ -834,11 +834,12 @@ function system_firmware_configure($verbose = false)
natsort($scripts);
foreach ($scripts as $script) {
if (is_executable($script)) {
$basename = basename($script);
if (is_executable($script) && $basename != 'README') {
/* run the script in passthru() but avoid standard output from this side */
passthru($script . '> /dev/null');
/* make a note about repo being handled */
service_log(' ' . preg_replace('/\..*?$/', ' ', basename($script)));
service_log(' ' . preg_replace('/\..*?$/', '', $basename));
}
}

View File

@ -0,0 +1,33 @@
#!/usr/local/bin/php
<?php
/*
* Copyright (C) 2023 Franco Fichtner <franco@opnsense.org>
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
* AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
* AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
* OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*/
$conf = '/usr/local/etc/pkg/repos/FreeBSD.conf';
/* ensure that FreeBSD repo is off to avoid obvious breakage */
@copy($conf . '.sample', $conf);