summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
113cfc6)
Simply use IO::File to write /proc/xyz files instead of running
external program using system("echo ...") (which fails when running
in perl taint mode).
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) {
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);
+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();
+}
+