diff options
author | sheldonh <sheldonh@FreeBSD.org> | 2001-12-20 16:16:25 +0000 |
---|---|---|
committer | sheldonh <sheldonh@FreeBSD.org> | 2001-12-20 16:16:25 +0000 |
commit | 67e8242386d3f4e8826098575e19b793dca10751 (patch) | |
tree | 0ffff484ad754a8d5ff177e1765e41e81b38cbb4 /contrib/smbfs/lib/smb/kiconv.c | |
parent | deebe243c054490fffec6fd386b6c50bbe0070e9 (diff) | |
parent | 48de1f540d9fce8ad29e667bb998732ab193d516 (diff) | |
download | FreeBSD-src-67e8242386d3f4e8826098575e19b793dca10751.zip FreeBSD-src-67e8242386d3f4e8826098575e19b793dca10751.tar.gz |
This commit was generated by cvs2svn to compensate for changes in r88282,
which included commits to RCS files with non-trunk default branches.
Diffstat (limited to 'contrib/smbfs/lib/smb/kiconv.c')
-rw-r--r-- | contrib/smbfs/lib/smb/kiconv.c | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/contrib/smbfs/lib/smb/kiconv.c b/contrib/smbfs/lib/smb/kiconv.c index ce69c84..e75f664 100644 --- a/contrib/smbfs/lib/smb/kiconv.c +++ b/contrib/smbfs/lib/smb/kiconv.c @@ -29,7 +29,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: kiconv.c,v 1.2 2001/04/16 04:33:01 bp Exp $ + * $Id: kiconv.c,v 1.3 2001/08/22 03:31:36 bp Exp $ */ #include <sys/types.h> @@ -38,6 +38,11 @@ #include <ctype.h> #include <errno.h> +#ifdef APPLE +#include <sys/types.h> +extern uid_t real_uid, eff_uid; +#endif + int kiconv_add_xlat_table(const char *to, const char *from, const u_char *table) { @@ -54,8 +59,17 @@ kiconv_add_xlat_table(const char *to, const char *from, const u_char *table) din.ia_data = table; din.ia_datalen = 256; olen = sizeof(dout); +#ifdef APPLE + seteuid(eff_uid); /* restore setuid root briefly */ + if (sysctlbyname("net.smb.fs.iconv.add", &dout, &olen, &din, sizeof(din)) == -1) { + seteuid(real_uid); /* and back to real user */ + return errno; + } + seteuid(real_uid); /* and back to real user */ +#else if (sysctlbyname("kern.iconv.add", &dout, &olen, &din, sizeof(din)) == -1) return errno; +#endif return 0; } |