Mercurial > mplayer.hg
view linux/vsscanf.c @ 8575:1d15ca298dda
Fix DVD authentication on Solaris 9.
Solaris 9 does not allow USCSICMD ioctls for non-root users on vold devices
any more; they are failing with an EPERM "permission denied" error. Now, only
root is allowed to run USCSICMD ioctls on vold devices.
Fortunatelly there's a new subroutine exported from libsmedia.so
(smedia_uscsi_cmd) which allows non-root users to perform user mode SCSI
commands on a vold device. (This works with a help of a daemon running as
user root, /usr/lib/smedia/rpc.smserverd)
This change detects the presence of function "smedia_uscsi_cmd" in library
libsmedia.so at runtime, and uses this function if it's found (i.e. on
solaris 9 smedia_uscsi_cmd() is used to execture user mode scsi commands).
On solaris 8 or older, "smedia_uscsi_cmd" is not available and the code
falls back to the old ioctl(.. USCSICMD ..) method.
author | jkeil |
---|---|
date | Fri, 27 Dec 2002 16:29:11 +0000 |
parents | 1dd8fe0776d3 |
children |
line wrap: on
line source
#include "../config.h" #ifndef HAVE_VSSCANF /* system has no vsscanf. try to provide one */ #include <stdio.h> #include <stdarg.h> int vsscanf(const char *str, const char *format, va_list ap) { /* XXX: can this be implemented in a more portable way? */ long p1 = va_arg(ap, long); long p2 = va_arg(ap, long); long p3 = va_arg(ap, long); long p4 = va_arg(ap, long); long p5 = va_arg(ap, long); return sscanf(str, format, p1, p2, p3, p4, p5); } #endif