From 06b8f41e66372f6fb3fe102f8c165aca69a3697f Mon Sep 17 00:00:00 2001 From: Michael Bayne Date: Thu, 21 Jul 2005 19:10:08 +0000 Subject: [PATCH] Added setuid() and setgid() to Unsafe. git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3653 542714f4-19e9-0310-aa3c-eee0fc999fb1 --- .../Linux/com_threerings_util_unsafe_Unsafe.c | 22 ++++++++++ .../threerings/util/unsafe/Linux/libunsafe.so | Bin 8252 -> 8251 bytes .../com/threerings/util/unsafe/Unsafe.java | 38 +++++++++++++++++- 3 files changed, 59 insertions(+), 1 deletion(-) diff --git a/src/java/com/threerings/util/unsafe/Linux/com_threerings_util_unsafe_Unsafe.c b/src/java/com/threerings/util/unsafe/Linux/com_threerings_util_unsafe_Unsafe.c index a22893af5..683c55839 100644 --- a/src/java/com/threerings/util/unsafe/Linux/com_threerings_util_unsafe_Unsafe.c +++ b/src/java/com/threerings/util/unsafe/Linux/com_threerings_util_unsafe_Unsafe.c @@ -55,6 +55,28 @@ Java_com_threerings_util_unsafe_Unsafe_nativeSleep ( } } +JNIEXPORT jboolean JNICALL +Java_com_threerings_util_unsafe_Unsafe_nativeSetuid ( + JNIEnv* env, jclass clazz, jint uid) +{ + if (setuid((uid_t)uid) != 0) { + fprintf(stderr, "setuid(%d) failed: %s\n", uid, strerror(errno)); + return JNI_FALSE; + } + return JNI_TRUE; +} + +JNIEXPORT jboolean JNICALL +Java_com_threerings_util_unsafe_Unsafe_nativeSetgid ( + JNIEnv* env, jclass clazz, jint gid) +{ + if (setgid((gid_t)gid) != 0) { + fprintf(stderr, "setgid(%d) failed: %s\n", gid, strerror(errno)); + return JNI_FALSE; + } + return JNI_TRUE; +} + JNIEXPORT jboolean JNICALL Java_com_threerings_util_unsafe_Unsafe_init (JNIEnv* env, jclass clazz) { diff --git a/src/java/com/threerings/util/unsafe/Linux/libunsafe.so b/src/java/com/threerings/util/unsafe/Linux/libunsafe.so index 671df8a7e831bc3c3917c6a601c815c803d0136b..59305842f9e3d2d14326b815e4292e7bc59064be 100755 GIT binary patch literal 8251 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 literal 8252 zcmeHMZH!!189wvTvJ{HjQnWz3y_5o5?B4CR(BKAP+x=)uc1!IprC7`5&dlAN3wLLR zxpy`#8lfzkI2l$O;17u=Z9soW&=490MN?d2sWGwv;}0|uQDhscLO^M7b$y<5&zZe5 zZNrjS@Q3f@o%cNFeeZj|zwhnt?TN)=LQ_H{1ku~)2yqSMjW9$~G>hfp5~
=7N9RcPo4xOQ=bHX;f){zaSCbu70|RO?PpK1 z3M1fFtO2i5`X6H?wG8<+Y}@mv+lULj6YaTs_I{fm?kVc?rp+#ur* zSMj+LvpUczd0HHm$B-mhW!pzoP1w>32b| z$v}Xt$zZ_hx^3IWzO9|Y+T45drj5PU%{@K+-2>LZ#!bE5mawd$;e5{W1G^YlfP-$% zMPz!f&7keM_c+43X~f#$47q;b6gxfJ_Z?sOj_0HUag#k_Tj~6;6=aK!Q*?7fzEuib z&no47d(g3N35AohQ=YTAbFTIo*Z*iAa^CG zZRYxFc&%=hk0fL0;c@k2h&cRlHsUWN>IMM95i5kh!bLAjh!GXn=(-sEadE%;;8AEf zyF8)f>q;(1hhzK}B`qa6hcG^?3YZcLSb-9Y)g6%MAU;Eh_*=?vjGkzi+KMbpy~n@bW9~gRA!eTD$eejB zoGBUNoRtUL@P#$GOczB0N5$y6H0UJkB&YhlgzqeqfushxRw z)~a;;=c9BI+qHYoL}j!QAD5G>rmlf}>*?{sS3)JmpF>UPIw~XAf8slsZY!hH zutb&@R4SY;$Bva6koEG3Jrf7UrH{{&0$3|KsC;BWjVd*NgH z-6zT~md8A1;AD9$3t8!Fc;=P9RO9={pZ{Qf`Nii?u2}uE@??3ea7LYbWD0BG>gUTZ zhN1FU0NZi-MY(HL$Byi4mToG7QFMp|8jxg?E8`(1qZP^_K5wWrj(1NpCkR7b zx!*%cW+umue6@+68ugzZ?LJ9QZ*8q~Pghv51`I9Aq|7dS!O5nj^srBQ=s1&ybKnZ! zic0s%nl6XZ@9dxILEG)0_z@PL@zJ+Ymhr-LrDJ;Zp7Wr;|d>RmDD36j393eIf22ce`lXD zSj-O_PHx0pP_N(Fw|#4<4ozVZ?tyzb%0Mjh7W`3i?qbj2+RI%E*G!IVb_DL4xX0pd ziF+^lc@XxfPdVSAo#Yw`mBbv1T&ua8;NFU1?zyTBEtkNx62; zXls|aW&LU)KGf*CkJpHK3eOa*^RT7DHe+404cRu_r>>-05eIl&yorCdtPp=jL$Yn3 zf?eoGMvFf}D8FnD(TeTBU9H(ndR^-f*WT8Qtf7`v$@MZ}6xQ1H<~lRux3#QWYX*)V zDBG5*qE(u=U@zdby6dmo&>~%>{ZebX7`SHtSx83aHq1dQ5)x=-V`IO8eZjRNc3)Ub zE>FqW(T}H?xlf>&u|=YBexl*hhASE_WNX)B&P8!?4>hrWUVt5acm$7~A{ySM~uxJlE(!V|IriGaf@a}(RLh15ug#@8Mt2oHZ zr9{olL;bR9KcQ6;cW~KRbBSN7!_j^~`&aAq$Lnytep|!=zmGtf-ff8BTuO@LbmT@1 zXdeJ`{vpNCb9o1(?{s509UTDH^&dn1e+!uRJfZzUaR`|60|a=9coG3a4Q8e{0emom z>(hS;`mRX&zXP5<11=KBf%TnqOk5z|2ae_^fx&nHYXFJqT^t#lbE*G&`}+F*sP$j( z@4mYHJP!OP)W`Q!exCy7odBl>*540-^__eyzEHdX{F<)6_yX};;OHIq`Iuz%Ig)q4 z7pY0-a`@w!wprmv6mD1eNrks5tnaw*1m;>!;vIKE>6t%{#`}TU-Xz{Je;qh_$Nf{_ z=pFYvz+9tAyyJc!IC{r@xtbFnhJGdZM&PLb9^e6$9?SP7;OHHO=*1Wv|mgJ~vj4SD&L?OAfu zZ`q~2LY@k&Olf#{pLX57t!vh^20c4A_H|ntF&Q16^(s#k((741Lh|B(N3Rck|3H03 z@7BbfBf|y0vSj?cl|}P