[pve-devel] [PATCH] copy_bridge_config : parse values

Alexandre DERUMIER aderumier at odiso.com
Wed Feb 26 07:45:17 CET 2014


yes, indeed, seem better for just write file, we don't need to call external program.


----- Mail original ----- 

De: "Dietmar Maurer" <dietmar at proxmox.com> 
À: "Alexandre Derumier" <aderumier at odiso.com>, pve-devel at pve.proxmox.com 
Envoyé: Mercredi 26 Février 2014 07:30:49 
Objet: RE: [pve-devel] [PATCH] copy_bridge_config : parse values 

> I wonder if this would solve also the problem? Please can you test? 

I would prefer to fix it this way (avoid to run external program using system()). 
Any objections? 

> diff --git a/data/PVE/Network.pm b/data/PVE/Network.pm index 
> 9ad34f1..458a2da 100644 
> --- a/data/PVE/Network.pm 
> +++ b/data/PVE/Network.pm 
> @@ -114,8 +114,7 @@ sub copy_bridge_config { 
> my $v0 = 
> PVE::Tools::file_read_firstline("/sys/class/net/$br0/bridge/$sysname"); 
> my $v1 = 
> PVE::Tools::file_read_firstline("/sys/class/net/$br1/bridge/$sysname"); 
> if ($v0 ne $v1) { 
> - system("echo \"$v0\" > /sys/class/net/$br1/bridge/$sysname") == 0 
> || 
> - warn "unable to set bridge config '$sysname'\n"; 
> + write_proc_entry("/sys/class/net/$br1/bridge/$sysname", 
> + $v0); 
> } 
> }; 
> warn $@ if $@; 
> diff --git a/data/PVE/ProcFSTools.pm b/data/PVE/ProcFSTools.pm index 
> 79d8cfd..e0a8828 100644 
> --- a/data/PVE/ProcFSTools.pm 
> +++ b/data/PVE/ProcFSTools.pm 
> @@ -246,4 +246,14 @@ sub read_proc_net_dev { 
> return $res; 
> } 
> 
> +sub write_proc_entry { 
> + my ($filename, $data) = @_;# 
> + 
> + my $fh = IO::File->new($filename, O_WRONLY); 
> + die "unable to open file '$filename' - $!\n" if !$fh; 
> + die "unable to write '$filename' - $!\n" unless print $fh $data; 
> + die "closing file '$filename' failed - $!\n" unless close $fh; 
> + $fh->close(); 
> +} 
> + 
> 1; 
> 
> 
> > -----Original Message----- 
> > From: pve-devel-bounces at pve.proxmox.com [mailto:pve-devel- 
> > bounces at pve.proxmox.com] On Behalf Of Alexandre Derumier 
> > Sent: Dienstag, 25. Februar 2014 06:15 
> > To: pve-devel at pve.proxmox.com 
> > Subject: [pve-devel] [PATCH] copy_bridge_config : parse values 
> > 
> > fix bug 
> > 
> > WARNING: Insecure dependency in system while running with -T switch at 
> > /usr/share/perl5/PVE/Network.pm line 175. 
> > 
> > Signed-off-by: Alexandre Derumier <aderumier at odiso.com> 
> > --- 
> > data/PVE/Network.pm | 9 +++++++++ 
> > 1 file changed, 9 insertions(+) 
> > 
> > diff --git a/data/PVE/Network.pm b/data/PVE/Network.pm index 
> > 98ef18e..99350cb 100644 
> > --- a/data/PVE/Network.pm 
> > +++ b/data/PVE/Network.pm 
> > @@ -168,6 +168,15 @@ sub copy_bridge_config { 
> > eval { 
> > my $v0 = 
> > PVE::Tools::file_read_firstline("/sys/class/net/$br0/bridge/$sysname"); 
> > my $v1 = 
> > PVE::Tools::file_read_firstline("/sys/class/net/$br1/bridge/$sysname") 
> > ; 
> > + 
> > + if($v0 =~ m/^(\S+)/){ 
> > + $v0 = $1; 
> > + } 
> > + 
> > + if($v1 =~ m/^(\S+)/){ 
> > + $v1 = $1; 
> > + } 
> > + 
> > if ($v0 ne $v1) { 
> > system("echo \"$v0\" > 
> > /sys/class/net/$br1/bridge/$sysname") == 0 || 
> > warn "unable to set bridge config '$sysname'\n"; 
> > -- 
> > 1.7.10.4 
> > 
> > _______________________________________________ 
> > pve-devel mailing list 
> > pve-devel at pve.proxmox.com 
> > http://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel 
> 
> 
> _______________________________________________ 
> pve-devel mailing list 
> pve-devel at pve.proxmox.com 
> http://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel 



More information about the pve-devel mailing list