MOON
Server: Apache
System: Linux cl1170g 4.19.62-mod-std-ipv6-64-rescue #828825 SMP Tue Jul 30 13:54:49 UTC 2019 x86_64
User: wh0f20bb (1057)
PHP: 5.6.40
Disabled: NONE
Upload Files
File: //proc/thread-self/root/root/webmin-1.740/file/setattrs.cgi
#!/usr/bin/perl
# setattrs.cgi
# Sets all the XFS attributes for a file

require './file-lib.pl';
$disallowed_buttons{'attr'} && &error($text{'ebutton'});
&ReadParse();
&webmin_log("attr", undef, $in{'file'}, \%in);
&switch_acl_uid_and_chroot();
print "Content-type: text/plain\n\n";
if ($access{'ro'} || !&can_access($in{'file'})) {
	print $text{'facl_eaccess'},"\n";
	}
else {
	# Set given attribs
	$temp = &transname();
	for($i=0; defined($n = $in{"name$i"}); $i++) {
		$v = $in{"value$i"};
		open(TEMP, ">$temp");
		print TEMP $v;
		close(TEMP);
		$out = `attr -s '$n' '$in{'file'}' <$temp 2>&1`;
		unlink($temp);
		if ($?) {
			print $out,"\n";
			exit;
			}
		$set{$n}++;
		}

	# Remove those that no longer exist
	$out = `attr -l '$in{'file'}' 2>&1`;
	foreach $l (split(/[\r\n]+/, $out)) {
		if ($l =~ /Attribute\s+"(.*)"/i && !$set{$1}) {
			$out = `attr -r '$1' '$in{'file'}' 2>&1`;
			if ($?) {
				print $out,"\n";
				exit;
				}
			}
		}
	print "\n";
	}