pkg://FreeWnn-1.10pl020-5.src.rpm:3007877/FreeWnn-nosbit.patch
info downloads
--- FreeWnn-1.10-pl020/Wnn/jserver/de.c~ 2004-03-22 18:27:19.000000000 +0900
+++ FreeWnn-1.10-pl020/Wnn/jserver/de.c 2004-03-22 18:32:24.000000000 +0900
@@ -50,6 +50,7 @@
# endif
#endif /* STDC_HEADERS */
#include <sys/ioctl.h>
+#include <pwd.h>
#include <sys/stat.h>
#include <sys/time.h>
#include <sys/types.h>
@@ -225,6 +226,7 @@
char *cswidth_name;
extern char *get_cswidth_name ();
extern void set_cswidth ();
+ struct passwd *pwent;
char nlspath[64];
@@ -244,8 +246,18 @@
port = -1;
option_flag |= SERVER_FORK;
- setregid(getegid(), getegid());
- setreuid(geteuid(), geteuid());
+ pwent = getpwnam("wnn");
+ if (pwent) {
+ if(setregid(pwent->pw_gid, pwent->pw_gid)) {
+ setregid(getegid(), getegid());
+ }
+ if(setreuid(pwent->pw_uid, pwent->pw_uid)) {
+ setreuid(geteuid(), geteuid());
+ }
+ } else {
+ setregid(getegid(), getegid());
+ setreuid(geteuid(), geteuid());
+ }
get_options (argc, argv);
print_version();
log_debug("invoked as %s.", argv[0]);