cvs commit: src/usr.sbin/acpi/acpiconf acpiconf.c
Takanori Watanabe
takawata at init-main.com
Thu Mar 4 18:40:22 PST 2004
In message <20040304100856.Y24532 at root.org>, Nate Lawson wrote:
>On Thu, 4 Mar 2004, Takanori Watanabe wrote:
>> FreeBSD src repository
>>
>> Modified files:
>> usr.sbin/acpi/acpiconf acpiconf.c
>> Log:
>> Make unprivilaged user can see battery info.
>>
>> Revision Changes Path
>> 1.13 +5 -2 src/usr.sbin/acpi/acpiconf/acpiconf.c
>
>Hi, welcome back! A few comments...
>
>> --- src/usr.sbin/acpi/acpiconf/acpiconf.c:1.12 Tue Dec 30 09:28:06 200
>3
>> +++ src/usr.sbin/acpi/acpiconf/acpiconf.c Thu Mar 4 09:03:49 2004
>> @@ -44,13 +44,16 @@
>> #define RC_RESUME_PATH "/etc/rc.resume"
>>
>> static int acpifd;
>> -
>> static int
>> acpi_init()
>
>I think that newline should be left for style(9)
This is my mistake. I'll fix this.
>> {
>> acpifd = open(ACPIDEV, O_RDWR);
>> - if (acpifd == -1)
>> + if (acpifd == -1){
>> + acpifd = open(ACPIDEV, O_RDONLY);
>> + }
>> + if (acpifd == -1){
>> err(EX_OSFILE, ACPIDEV);
>> + }
>> }
>>
>> static int
>
>I am concerned about this change since being able to open a descriptor
>read-only implies they can do ioctl, which means they can also suspend the
>system. If we have to do this, we might have to go the setgid route
State transition ioctls have security check for write permisson.
I added this feature exactly for this reason.
http://www.freebsd.org/cgi/cvsweb.cgi/src/sys/dev/acpica/acpi.c.diff?r1=1.83&r2=1.84
http://www.freebsd.org/cgi/cvsweb.cgi/src/sys/dev/acpica/acpi_battery.c.diff?r1=1.6&r2=1.7
http://www.freebsd.org/cgi/cvsweb.cgi/src/sys/dev/acpica/acpi_cmbat.c.diff?r1=1.19&r2=1.20
http://www.freebsd.org/cgi/cvsweb.cgi/src/sys/dev/acpica/acpi_acad.c.diff?r1=1.13&r2=1.14
>although I don't necessarily want to deal with the security implications
>of that. Users can get battery status through apm(8) but not battery
>info.
apm(8) information is only emulated apm status.
The acpiconf -i informations are not available from apm(8) interface.
Certainly, some people invoke -s by mistake and execute rc.suspend, but
rc.suspend will stop because they have enough permission to write pid
file.
More information about the cvs-src
mailing list