all lists on lists.proxmox.com
 help / color / mirror / Atom feed
* [PATCH pve-manager] fix #7187: report: add ethtool output for physical interfaces
@ 2026-05-08 12:40 Erik Fastermann
  2026-05-12  8:34 ` Friedrich Weber
  0 siblings, 1 reply; 2+ messages in thread
From: Erik Fastermann @ 2026-05-08 12:40 UTC (permalink / raw)
  To: pve-devel; +Cc: Erik Fastermann

Signed-off-by: Erik Fastermann <e.fastermann@proxmox.com>
---

 NOTE: A similar patch was applied to all products:
 pmg, pve, pbs, pdm.

 PVE/Report.pm | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/PVE/Report.pm b/PVE/Report.pm
index 29433d4a..b3a5c08c 100644
--- a/PVE/Report.pm
+++ b/PVE/Report.pm
@@ -3,6 +3,7 @@ package PVE::Report;
 use strict;
 use warnings;
 
+use PVE::IPRoute2;
 use PVE::Tools;
 
 # output the content of all the files of a directory
@@ -142,6 +143,14 @@ my $init_report_cmds = sub {
         },
     };
 
+    my $interfaces = PVE::IPRoute2::ip_link_details();
+
+    for my $iface (sort keys %{$interfaces}) {
+        if (PVE::IPRoute2::ip_link_is_physical($interfaces->{$iface})) {
+            push @{ $report_def->{network}->{cmds} }, "ethtool $iface";
+        }
+    }
+
     if (cmd_exists('zfs')) {
         push @{ $report_def->{volumes}->{cmds} },
             'zpool status',
-- 
2.47.3




^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH pve-manager] fix #7187: report: add ethtool output for physical interfaces
  2026-05-08 12:40 [PATCH pve-manager] fix #7187: report: add ethtool output for physical interfaces Erik Fastermann
@ 2026-05-12  8:34 ` Friedrich Weber
  0 siblings, 0 replies; 2+ messages in thread
From: Friedrich Weber @ 2026-05-12  8:34 UTC (permalink / raw)
  To: Erik Fastermann, pve-devel

Hi, thanks for tackling this! A few comments inline (note that I only
looked at the PVE patch)

On 08/05/2026 14:39, Erik Fastermann wrote:
> Signed-off-by: Erik Fastermann <e.fastermann@proxmox.com>
> ---

Please add some rationale to the commit message [1], you can derive it
from the bug #7187 for instance.

> 
>  NOTE: A similar patch was applied to all products:
>  pmg, pve, pbs, pdm.
> 
>  PVE/Report.pm | 9 +++++++++
>  1 file changed, 9 insertions(+)
> 
> diff --git a/PVE/Report.pm b/PVE/Report.pm
> index 29433d4a..b3a5c08c 100644
> --- a/PVE/Report.pm
> +++ b/PVE/Report.pm
> @@ -3,6 +3,7 @@ package PVE::Report;
>  use strict;
>  use warnings;
>  
> +use PVE::IPRoute2;
>  use PVE::Tools;
>  
>  # output the content of all the files of a directory
> @@ -142,6 +143,14 @@ my $init_report_cmds = sub {
>          },
>      };
>  
> +    my $interfaces = PVE::IPRoute2::ip_link_details();
> +
> +    for my $iface (sort keys %{$interfaces}) {
> +        if (PVE::IPRoute2::ip_link_is_physical($interfaces->{$iface})) {
> +            push @{ $report_def->{network}->{cmds} }, "ethtool $iface";

Everything in $report_def->{network}->{cmds} is essentially passed to
run_command, and passing strings from the outside (like $iface) to
something like run_command can be dangerous (e.g. allow command
injection). Granted, here this is the name of a physical interface, so
the risk of someone injecting something there is low, but as a
precaution I'd still apply a PVE::Tools::shellquote on $iface before
constructing the ethtool command here.

> +        }
> +    }
> +

I'd probably wrap the whole thing in an `eval` with a `if(@)`
afterwards, just to prevent something die'ing in `ip_link_details` or
`ip_link_is_physical` from crashing the report.

>      if (cmd_exists('zfs')) {
>          push @{ $report_def->{volumes}->{cmds} },
>              'zpool status',

[1]
https://pve.proxmox.com/wiki/Developer_Documentation#Commits_and_Commit_Messages




^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2026-05-12  8:34 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-05-08 12:40 [PATCH pve-manager] fix #7187: report: add ethtool output for physical interfaces Erik Fastermann
2026-05-12  8:34 ` Friedrich Weber

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal