[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[freewnn:00359] Re: PATCH: gets_cur & getws_cur size limit (Re: security problem of jserver)



 $B85LZ$G$9!#(B

 $B$9$$$^$;$s!#(Bfreewnn-mkdir.diff $B$G$9$,!"0l8D8E$$%P!<%8%g%s$N(B 
 diff $B$rN.$7$F$7$^$$$^$7$?!#(B
 
 $B$3$N%a!<%k$KAwIU$9$k$b$N$HF~$l49$($F2<$5$$!#(B

In [freewnn : No.00358]
  sin@itl.co.jp (MOTOKI Sinichi) wrote:

|  2. freewnn-mkdir.diff

|   $BA0$K$b=P$7$?5-21$,F|$NL\$r8+$J$+$C$?$N$G$b$&0lEY!#(B

|   mkdir() $B$,L5$$$HH=Dj$5$l$?>l9g$K(B system() $B$G(B /bin/mkdir $B$r(B
|   $B8F$S=P$7$F$$$k$N$r=$@5!#(B
|   (Wnn/etc/mkdir.c $B$r?75,$K:n$C$F$$$^$9!#(B)

|   $B$3$C$A$O$b$C$H3Z$K0-5:$,$G$-$^$9$N$G(B 
|   freewnn-size_limit.diff $B$rEv$F$k$J$i0l=o$KEv$F$F2<$5$$!#(B

|   mkdir() $B$r;}$C$F$$$F$b0J2<$N>r7o$KEv$F$O$^$i$J$$>l9g$O(B 
|   mkdir() $B$r;}$C$F$$$J$$$HH=Dj$5$l$^$9$N$GCm0U$7$F2<$5$$!#(B
| >defined(BSD42) || defined(uniosu) || defined(UX386) || defined(DGUX)

sin.
diff -cNdr FreeWnn-1.1.1-a016.orig/Xsi/Wnn/etc/mkdir.c FreeWnn-1.1.1-a016/Xsi/Wnn/etc/mkdir.c
*** FreeWnn-1.1.1-a016.orig/Xsi/Wnn/etc/mkdir.c	Thu Jan  1 09:00:00 1970
--- FreeWnn-1.1.1-a016/Xsi/Wnn/etc/mkdir.c	Thu Mar  9 15:57:07 2000
***************
*** 0 ****
--- 1,76 ----
+ /*
+  *  $Id: copyright.h $
+  */
+ 
+ /*
+  * FreeWnn is a network-extensible Kana-to-Kanji conversion system.
+  * This file is part of FreeWnn.
+  * 
+  * Copyright Kyoto University Research Institute for Mathematical Sciences
+  *                 1987, 1988, 1989, 1990, 1991, 1992
+  * Copyright OMRON Corporation. 1987, 1988, 1989, 1990, 1991, 1992, 1999
+  * Copyright ASTEC, Inc. 1987, 1988, 1989, 1990, 1991, 1992
+  * Copyright FreeWnn Project 1999, 2000
+  *
+  * Maintainer:  FreeWnn Project   <freewnn@tomo.gr.jp>
+  *
+  * This program is free software; you can redistribute it and/or modify
+  * it under the terms of the GNU General Public License as published by
+  * the Free Software Foundation; either version 2 of the License, or
+  * (at your option) any later version.
+  *
+  * This program is distributed in the hope that it will be useful,
+  * but WITHOUT ANY WARRANTY; without even the implied warranty of
+  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  * GNU General Public License for more details.
+  *
+  * You should have received a copy of the GNU General Public License
+  * along with this program; if not, write to the Free Software
+  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+  */
+ 
+ #include <config.h>
+ 
+ #if !defined(HAVE_MKDIR)
+ 
+ #include <stdlib.h>
+ 
+ #include <sys/types.h>
+ #include <sys/wait.h>
+ 
+ #if !defined(WIFEXITED)
+ #define WEXITSTATUS(status) (((status) & 0xff00) >> 8)
+ #endif /* !WIFEXITED */
+ #if !defined(WIFSIGNALED)
+ #define WTERMSIG(status) ((status) & 0x7f)
+ #endif /* !WIFSIGNALED */
+ #if !defined(WIFSTOPPED)
+ #define WSTOPSIG(status) WEXITSTATUS(status)
+ #endif /* !WIFSTOPPED */
+ #if !defined(WIFEXITED)
+ #define WIFEXITED(status) (__WTERMSIG(status) == 0)
+ #endif /* !WIFEXITED */
+ 
+ int
+ mkdir (path, mode)
+      const char *path;
+      mode_t mode;
+ {
+   const char *args[3];
+   int status;
+ 
+   if (!path)
+     return -1;
+ 
+   args[0] = "/bin/mkdir";
+   args[1] = path;
+   args[2] = NULL;
+   
+   if (!fork ())
+     execv (args[0], args);
+   else 
+     wait (&status);
+   
+   return !(WIFEXITED (status));
+ }
+ #endif
diff -cNdr FreeWnn-1.1.1-a016.orig/Xsi/Wnn/jlib/Makefile.in FreeWnn-1.1.1-a016/Xsi/Wnn/jlib/Makefile.in
*** FreeWnn-1.1.1-a016.orig/Xsi/Wnn/jlib/Makefile.in	Fri Jan 21 00:57:25 2000
--- FreeWnn-1.1.1-a016/Xsi/Wnn/jlib/Makefile.in	Thu Mar  9 15:57:07 2000
***************
*** 63,74 ****
  OBJ7= strings.o
  SRC8= $(WNNETCSRC)/bcopy.c
  OBJ8= bcopy.o
  LOCAL_RKSRCS= $(WNNROMKANSRC)/rk_bltinfn.c 	$(WNNROMKANSRC)/rk_main.c 	$(WNNROMKANSRC)/rk_modread.c 	$(WNNROMKANSRC)/rk_read.c 	$(WNNROMKANSRC)/rk_vars.c
  
  LOCAL_RKOBJS= $(WNNROMKANSRC)/rk_bltinfn.o 	$(WNNROMKANSRC)/rk_main.o 	$(WNNROMKANSRC)/rk_modread.o 	$(WNNROMKANSRC)/rk_read.o 	$(WNNROMKANSRC)/rk_vars.o
  
! LOCAL_ETCSRCS = $(SRC3) $(SRC4) $(SRC5) $(SRC6) $(SRC7) $(SRC8)
! LOCAL_ETCOBJS = $(OBJ3) $(OBJ4) $(OBJ5) $(OBJ6) $(OBJ7) $(OBJ8)
  SRCS= $(SRC1) $(LOCAL_ETCSRCS)
  OBJS= $(OBJ1) $(LOCAL_ETCOBJS) $(LOCAL_RKOBJS)
  
--- 63,77 ----
  OBJ7= strings.o
  SRC8= $(WNNETCSRC)/bcopy.c
  OBJ8= bcopy.o
+ SRC9= $(WNNETCSRC)/mkdir.c
+ OBJ9= mkdir.o
+ 
  LOCAL_RKSRCS= $(WNNROMKANSRC)/rk_bltinfn.c 	$(WNNROMKANSRC)/rk_main.c 	$(WNNROMKANSRC)/rk_modread.c 	$(WNNROMKANSRC)/rk_read.c 	$(WNNROMKANSRC)/rk_vars.c
  
  LOCAL_RKOBJS= $(WNNROMKANSRC)/rk_bltinfn.o 	$(WNNROMKANSRC)/rk_main.o 	$(WNNROMKANSRC)/rk_modread.o 	$(WNNROMKANSRC)/rk_read.o 	$(WNNROMKANSRC)/rk_vars.o
  
! LOCAL_ETCSRCS = $(SRC3) $(SRC4) $(SRC5) $(SRC6) $(SRC7) $(SRC8) $(SRC9)
! LOCAL_ETCOBJS = $(OBJ3) $(OBJ4) $(OBJ5) $(OBJ6) $(OBJ7) $(OBJ8) $(OBJ9)
  SRCS= $(SRC1) $(LOCAL_ETCSRCS)
  OBJS= $(OBJ1) $(LOCAL_ETCOBJS) $(LOCAL_RKOBJS)
  
***************
*** 148,153 ****
--- 151,159 ----
  	$(CC) -c $(CFLAGS)  $(WNNETCSRC)/`basename $@ .o`.c
  
  $(OBJ8) : $(SRC8)
+ 	$(CC) -c $(CFLAGS)  $(WNNETCSRC)/`basename $@ .o`.c
+ 
+ $(OBJ9) : $(SRC9)
  	$(CC) -c $(CFLAGS)  $(WNNETCSRC)/`basename $@ .o`.c
  
  $(LOCAL_RKOBJS) : $(LOCAL_RKSRCS)
diff -cNdr FreeWnn-1.1.1-a016.orig/Xsi/Wnn/jlib/jl.c FreeWnn-1.1.1-a016/Xsi/Wnn/jlib/jl.c
*** FreeWnn-1.1.1-a016.orig/Xsi/Wnn/jlib/jl.c	Thu Feb 24 00:31:31 2000
--- FreeWnn-1.1.1-a016/Xsi/Wnn/jlib/jl.c	Thu Mar  9 15:57:07 2000
***************
*** 33,38 ****
--- 33,40 ----
          Nihongo Henkan Hi-level Library
  */
  
+ #include <config.h>
+ 
  #include "commonhd.h"
  #include "wnn_config.h"
  #include <stdio.h>
***************
*** 3287,3311 ****
    if (dirname[0] == C_LOCAL)
      {                           /* Create Directory */
  #define MODE (0000000 | 0000777)
- #if defined(BSD42) || defined(uniosu)
        if (mkdir (dirname + 1, MODE) != 0)
          {
            wnn_errorno = WNN_MKDIR_FAIL;
            return (-1);
          }
! #endif
! #if defined(SYSVR2) && !defined(uniosu)
!       char buf[256];
!       strcpy (buf, "/bin/mkdir ");
!       strcat (buf, dirname + 1);
!       if (system (buf) != 0)
!         {
!           /*
!              wnn_errorno=WNN_MKDIR_FAIL;
!              return(-1);
!            */
!         }
! #endif
        chmod (dirname + 1, MODE);
        chown (dirname + 1, getuid (), -1);
      }
--- 3289,3300 ----
    if (dirname[0] == C_LOCAL)
      {                           /* Create Directory */
  #define MODE (0000000 | 0000777)
        if (mkdir (dirname + 1, MODE) != 0)
          {
            wnn_errorno = WNN_MKDIR_FAIL;
            return (-1);
          }
! 
        chmod (dirname + 1, MODE);
        chown (dirname + 1, getuid (), -1);
      }
diff -cNdr FreeWnn-1.1.1-a016.orig/Xsi/Wnn/jserver/Makefile.in FreeWnn-1.1.1-a016/Xsi/Wnn/jserver/Makefile.in
*** FreeWnn-1.1.1-a016.orig/Xsi/Wnn/jserver/Makefile.in	Sun Jan 30 12:50:20 2000
--- FreeWnn-1.1.1-a016/Xsi/Wnn/jserver/Makefile.in	Thu Mar  9 15:57:25 2000
***************
*** 73,81 ****
  OBJ13= msg.o
  SRC14= $(WNNETCSRC)/xutoj.c
  OBJ14= xutoj.o
! SRCS= $(SRC0) $(SRC1) $(SRC2) $(SRC3) $(SRC4) $(SRC5) $(SRC6) $(SRC7)       $(SRCGETHINSI) $(SRC9) $(SRC10) $(SRC11) $(SRC12) $(SRC13) $(SRC14)
  
! OBJS= $(OBJ0) $(OBJ1) $(OBJ2) $(OBJ3) $(OBJ4) $(OBJ5) $(OBJ6) $(OBJ7)       $(OBJGETHINSI) $(OBJ9) $(OBJ10) $(OBJ11) $(OBJ12) $(OBJ13) $(OBJ14)
  
  all:: jserver
  
--- 73,83 ----
  OBJ13= msg.o
  SRC14= $(WNNETCSRC)/xutoj.c
  OBJ14= xutoj.o
! SRC15= $(WNNETCSRC)/mkdir.c
! OBJ15= mkdir.o
! SRCS= $(SRC0) $(SRC1) $(SRC2) $(SRC3) $(SRC4) $(SRC5) $(SRC6) $(SRC7)       $(SRCGETHINSI) $(SRC9) $(SRC10) $(SRC11) $(SRC12) $(SRC13) $(SRC14) $(SRC15)
  
! OBJS= $(OBJ0) $(OBJ1) $(OBJ2) $(OBJ3) $(OBJ4) $(OBJ5) $(OBJ6) $(OBJ7)       $(OBJGETHINSI) $(OBJ9) $(OBJ10) $(OBJ11) $(OBJ12) $(OBJ13) $(OBJ14) $(OBJ15)
  
  all:: jserver
  
***************
*** 133,136 ****
--- 135,141 ----
  	$(CC) -c $(CFLAGS)  $(WNNETCSRC)/`basename $@ .o`.c
  
  $(OBJ14) : $(SRC14)
+ 	$(CC) -c $(CFLAGS)  $(WNNETCSRC)/`basename $@ .o`.c
+ 
+ $(OBJ15) : $(SRC15)
  	$(CC) -c $(CFLAGS)  $(WNNETCSRC)/`basename $@ .o`.c
diff -cNdr FreeWnn-1.1.1-a016.orig/Xsi/Wnn/jserver/do_filecom.c FreeWnn-1.1.1-a016/Xsi/Wnn/jserver/do_filecom.c
*** FreeWnn-1.1.1-a016.orig/Xsi/Wnn/jserver/do_filecom.c	Thu Mar  9 15:56:49 2000
--- FreeWnn-1.1.1-a016/Xsi/Wnn/jserver/do_filecom.c	Thu Mar  9 15:57:08 2000
***************
*** 33,38 ****
--- 33,40 ----
   *      Do Global File command
   */
  
+ #include <config.h>
+ 
  #include <sys/types.h>
  #include <sys/stat.h>
  #include <stdio.h>
***************
*** 64,70 ****
  /*      mkdir   */
  
  #define MODE (0000000 | 0000777)
- #if defined(BSD42) || defined(uniosu) || defined(UX386) || defined(DGUX)
  /* #define      MODE (0040000 | 0000731) */
  /* #define      MODE (0000000 | 0000733) */
  
--- 66,71 ----
***************
*** 94,135 ****
    put4_cur (0);
    putc_purge ();
  }
- #endif
- 
- #if defined(SYSVR2) && !defined(uniosu) && !defined(UX386) && !defined(DGUX)
- void
- js_mkdir ()
- {
-   char path[FILENAME];
-   char buf[1024];
-   int fd;
-   int eid;
- 
-   eid = envhandle ();
-   get_file_name (path, FILENAME);
-   if (eid == -1)
-     {
-       error_ret ();
-       return;
-     }
- 
-   if ((fd = open (path, O_RDONLY)) >= 0)
-     {
-       close (fd);
-       wnn_errorno = WNN_MKDIR_FAIL;
-       error_ret ();
-       return;
-     }
-   strcpy (buf, "/bin/mkdir ");
-   strcat (buf, path);
-   if (system (buf) != 0)
-     {
-     }
-   chmod (path, MODE);
-   put4_cur (0);
-   putc_purge ();
- }
- #endif
  
  /*      access  */
  void
--- 95,100 ----
diff -cNdr FreeWnn-1.1.1-a016.orig/Xsi/cWnn/etc/Makefile.in FreeWnn-1.1.1-a016/Xsi/cWnn/etc/Makefile.in
*** FreeWnn-1.1.1-a016.orig/Xsi/cWnn/etc/Makefile.in	Sun Jan 30 14:57:59 2000
--- FreeWnn-1.1.1-a016/Xsi/cWnn/etc/Makefile.in	Thu Mar  9 15:57:08 2000
***************
*** 40,48 ****
         INCLUDES = -I$(CWNNINCLUDESRC) -I$(TOP)
          DEFINES = $(CWNNDEFINES) $(CWNNLANGDEF)
  
! SRCS= strings.c 	sstrings.c 	bdic.c 	hindo.c 	gethinsi.c 	revdic.c 	pwd.c 	bcopy.c 	xutoj.c 	dic_atojis.c 	msg.c 	yincoding.c 	py_table.c 	zy_table.c 	server_env.c
  
! OBJS= strings.o 	sstrings.o 	bdic.o 	hindo.o 	gethinsi.o 	revdic.o 	pwd.o 	bcopy.o 	xutoj.o 	dic_atojis.o 	msg.o 	yincoding.o 	py_table.o 	zy_table.o 	server_env.o
  
  all::
  
--- 40,48 ----
         INCLUDES = -I$(CWNNINCLUDESRC) -I$(TOP)
          DEFINES = $(CWNNDEFINES) $(CWNNLANGDEF)
  
! SRCS= strings.c 	sstrings.c 	bdic.c 	hindo.c 	gethinsi.c 	revdic.c 	pwd.c 	bcopy.c 	xutoj.c 	dic_atojis.c 	msg.c 	yincoding.c 	py_table.c 	zy_table.c 	server_env.c mkdir.c
  
! OBJS= strings.o 	sstrings.o 	bdic.o 	hindo.o 	gethinsi.o 	revdic.o 	pwd.o 	bcopy.o 	xutoj.o 	dic_atojis.o 	msg.o 	yincoding.o 	py_table.o 	zy_table.o 	server_env.o mkdir.o
  
  all::
  
***************
*** 222,227 ****
--- 222,238 ----
  
  clean::
  	$(RM) server_env.c
+ 
+ mkdir.c:  $(WNNETCSRC)/mkdir.c
+ 	$(RM) $@
+ 	$(LN) $? $@
+ 
+ includes:: mkdir.c
+ 
+ depend:: mkdir.c
+ 
+ clean::
+ 	$(RM) mkdir.c
  
  depend:: .depend
  
diff -cNdr FreeWnn-1.1.1-a016.orig/Xsi/cWnn/jlib/Makefile.in FreeWnn-1.1.1-a016/Xsi/cWnn/jlib/Makefile.in
*** FreeWnn-1.1.1-a016.orig/Xsi/cWnn/jlib/Makefile.in	Sun Jan 30 14:56:56 2000
--- FreeWnn-1.1.1-a016/Xsi/cWnn/jlib/Makefile.in	Thu Mar  9 15:57:08 2000
***************
*** 64,75 ****
  OBJ7= strings.o
  SRC8= $(CWNNETCSRC)/bcopy.c
  OBJ8= bcopy.o
  LOCAL_RKSRCS= $(CWNNROMKANSRC)/rk_bltinfn.c 	$(CWNNROMKANSRC)/rk_main.c 	$(CWNNROMKANSRC)/rk_modread.c 	$(CWNNROMKANSRC)/rk_read.c 	$(CWNNROMKANSRC)/rk_vars.c
  
  LOCAL_RKOBJS= $(CWNNROMKANSRC)/rk_bltinfn.o 	$(CWNNROMKANSRC)/rk_main.o 	$(CWNNROMKANSRC)/rk_modread.o 	$(CWNNROMKANSRC)/rk_read.o 	$(CWNNROMKANSRC)/rk_vars.o
  
! LOCAL_ETCSRCS = $(SRC4) $(SRC5) $(SRC6) $(SRC7) $(SRC8)
! LOCAL_ETCOBJS = $(OBJ4) $(OBJ5) $(OBJ6) $(OBJ7) $(OBJ8)
  SRCS= $(SRC1) $(SRC3) $(LOCAL_ETCSRCS)
  OBJS= $(OBJ1) $(OBJ3) $(LOCAL_ETCOBJS) $(LOCAL_RKOBJS)
  
--- 64,78 ----
  OBJ7= strings.o
  SRC8= $(CWNNETCSRC)/bcopy.c
  OBJ8= bcopy.o
+ SRC9= $(CWNNETCSRC)/mkdir.c
+ OBJ9= mkdir.o
+ 
  LOCAL_RKSRCS= $(CWNNROMKANSRC)/rk_bltinfn.c 	$(CWNNROMKANSRC)/rk_main.c 	$(CWNNROMKANSRC)/rk_modread.c 	$(CWNNROMKANSRC)/rk_read.c 	$(CWNNROMKANSRC)/rk_vars.c
  
  LOCAL_RKOBJS= $(CWNNROMKANSRC)/rk_bltinfn.o 	$(CWNNROMKANSRC)/rk_main.o 	$(CWNNROMKANSRC)/rk_modread.o 	$(CWNNROMKANSRC)/rk_read.o 	$(CWNNROMKANSRC)/rk_vars.o
  
! LOCAL_ETCSRCS = $(SRC4) $(SRC5) $(SRC6) $(SRC7) $(SRC8) $(SRC9)
! LOCAL_ETCOBJS = $(OBJ4) $(OBJ5) $(OBJ6) $(OBJ7) $(OBJ8) $(OBJ9)
  SRCS= $(SRC1) $(SRC3) $(LOCAL_ETCSRCS)
  OBJS= $(OBJ1) $(OBJ3) $(LOCAL_ETCOBJS) $(LOCAL_RKOBJS)
  
***************
*** 206,211 ****
--- 209,217 ----
  	$(CC) -c $(CFLAGS)  $(CWNNETCSRC)/`basename $@ .o`.c
  
  $(OBJ8) : $(SRC8)
+ 	$(CC) -c $(CFLAGS)  $(CWNNETCSRC)/`basename $@ .o`.c
+ 
+ $(OBJ9) : $(SRC9)
  	$(CC) -c $(CFLAGS)  $(CWNNETCSRC)/`basename $@ .o`.c
  
  $(LOCAL_RKOBJS) : $(LOCAL_RKSRCS)
diff -cNdr FreeWnn-1.1.1-a016.orig/Xsi/cWnn/jserver/Makefile.in FreeWnn-1.1.1-a016/Xsi/cWnn/jserver/Makefile.in
*** FreeWnn-1.1.1-a016.orig/Xsi/cWnn/jserver/Makefile.in	Sun Jan 30 14:55:56 2000
--- FreeWnn-1.1.1-a016/Xsi/cWnn/jserver/Makefile.in	Thu Mar  9 15:57:08 2000
***************
*** 77,92 ****
  OBJ13= msg.o
  SRC14= $(CWNNETCSRC)/xutoj.c
  OBJ14= xutoj.o
  TSRC0= de_t.c
  TOBJ0= de_t.o
  TSRCGETHINSI= gethinsi_t.c
  TOBJGETHINSI= gethinsi_t.o
  TSRCS= $(TSRC0) $(TSRCGETHINSI)
! SRCS= $(SRC0) $(SRC1) $(SRC2) $(SRC3) $(SRC4) $(SRC5) $(SRC6) $(SRC7)       $(SRCGETHINSI) $(SRC9) $(SRC10) $(SRC11) $(SRC12) $(SRC13) $(SRCS14)       $(TSRCS)
  
! OBJS= $(OBJ0) $(OBJ1) $(OBJ2) $(OBJ3) $(OBJ4) $(OBJ5) $(OBJ6) $(OBJ7)       $(OBJGETHINSI) $(OBJ9) $(OBJ10) $(OBJ11) $(OBJ12) $(OBJ13) $(OBJ14)
  
! TOBJS= $(TOBJ0) $(OBJ1) $(OBJ2) $(OBJ3) $(OBJ4) $(OBJ5) $(OBJ6) $(OBJ7)       $(TOBJGETHINSI) $(OBJ9) $(OBJ10) $(OBJ11) $(OBJ12) $(OBJ13) $(OBJ14)
  
  all:: $(HDRS) $(SRC0) $(SRC1) $(TSRCS) cserver tserver
  
--- 77,94 ----
  OBJ13= msg.o
  SRC14= $(CWNNETCSRC)/xutoj.c
  OBJ14= xutoj.o
+ SRC15= $(CWNNETCSRC)/mkdir.c
+ OBJ15= mkdir.o
  TSRC0= de_t.c
  TOBJ0= de_t.o
  TSRCGETHINSI= gethinsi_t.c
  TOBJGETHINSI= gethinsi_t.o
  TSRCS= $(TSRC0) $(TSRCGETHINSI)
! SRCS= $(SRC0) $(SRC1) $(SRC2) $(SRC3) $(SRC4) $(SRC5) $(SRC6) $(SRC7) $(SRCGETHINSI) $(SRC9) $(SRC10) $(SRC11) $(SRC12) $(SRC13) $(SRC14) $(SRC15) $(TSRCS)
  
! OBJS= $(OBJ0) $(OBJ1) $(OBJ2) $(OBJ3) $(OBJ4) $(OBJ5) $(OBJ6) $(OBJ7) $(OBJGETHINSI) $(OBJ9) $(OBJ10) $(OBJ11) $(OBJ12) $(OBJ13) $(OBJ14) $(OBJ15)
  
! TOBJS= $(TOBJ0) $(OBJ1) $(OBJ2) $(OBJ3) $(OBJ4) $(OBJ5) $(OBJ6) $(OBJ7) $(TOBJGETHINSI) $(OBJ9) $(OBJ10) $(OBJ11) $(OBJ12) $(OBJ13) $(OBJ14) $(OBJ15)
  
  all:: $(HDRS) $(SRC0) $(SRC1) $(TSRCS) cserver tserver
  
***************
*** 621,626 ****
--- 623,631 ----
  	$(CC) -c $(CFLAGS)  $(CWNNETCSRC)/`basename $@ .o`.c
  
  $(OBJ14) : $(SRC14)
+ 	$(CC) -c $(CFLAGS)  $(CWNNETCSRC)/`basename $@ .o`.c
+ 
+ $(OBJ15) : $(SRC15)
  	$(CC) -c $(CFLAGS)  $(CWNNETCSRC)/`basename $@ .o`.c
  
  $(TOBJ0) : $(TSRC0)
diff -cNdr FreeWnn-1.1.1-a016.orig/Xsi/config.h.in FreeWnn-1.1.1-a016/Xsi/config.h.in
*** FreeWnn-1.1.1-a016.orig/Xsi/config.h.in	Thu Mar  9 15:56:50 2000
--- FreeWnn-1.1.1-a016/Xsi/config.h.in	Thu Mar  9 15:57:08 2000
***************
*** 31,36 ****
--- 31,37 ----
  
  #undef HAVE_UNISTD_H
  #undef HAVE_SYS_TYPES_H
+ #undef HAVE_MKDIR
  
  /* *_t が定義されているか? (定義されていればここでは undef になる) */
  #undef time_t
diff -cNdr FreeWnn-1.1.1-a016.orig/Xsi/kWnn/etc/Makefile.in FreeWnn-1.1.1-a016/Xsi/kWnn/etc/Makefile.in
*** FreeWnn-1.1.1-a016.orig/Xsi/kWnn/etc/Makefile.in	Sun Jan 30 15:51:15 2000
--- FreeWnn-1.1.1-a016/Xsi/kWnn/etc/Makefile.in	Thu Mar  9 15:57:08 2000
***************
*** 40,48 ****
         INCLUDES = -I$(KWNNINCLUDESRC) -I$(TOP)
          DEFINES = $(KWNNDEFINES) $(KWNNLANGDEF)
  
! SRCS= strings.c 	sstrings.c 	bdic.c 	hindo.c 	gethinsi.c 	revdic.c 	pwd.c 	bcopy.c 	xutoj.c 	dic_atojis.c 	msg.c 	yincoding.c 	py_table.c 	zy_table.c 	server_env.c
  
! OBJS= strings.o 	sstrings.o 	bdic.o 	hindo.o 	gethinsi.o 	revdic.o 	pwd.o 	bcopy.o 	xutoj.o 	dic_atojis.o 	msg.o 	yincoding.o 	py_table.o 	zy_table.o 	server_env.o
  
  all::
  
--- 40,48 ----
         INCLUDES = -I$(KWNNINCLUDESRC) -I$(TOP)
          DEFINES = $(KWNNDEFINES) $(KWNNLANGDEF)
  
! SRCS= strings.c 	sstrings.c 	bdic.c 	hindo.c 	gethinsi.c 	revdic.c 	pwd.c 	bcopy.c 	xutoj.c 	dic_atojis.c 	msg.c 	yincoding.c 	py_table.c 	zy_table.c 	server_env.c mkdir.c
  
! OBJS= strings.o 	sstrings.o 	bdic.o 	hindo.o 	gethinsi.o 	revdic.o 	pwd.o 	bcopy.o 	xutoj.o 	dic_atojis.o 	msg.o 	yincoding.o 	py_table.o 	zy_table.o 	server_env.o mkdir.o
  
  all::
  
***************
*** 222,227 ****
--- 222,238 ----
  
  clean::
  	$(RM) server_env.c
+ 
+ mkdir.c:  $(WNNETCSRC)/mkdir.c
+ 	$(RM) $@
+ 	$(LN) $? $@
+ 
+ includes:: mkdir.c
+ 
+ depend:: mkdir.c
+ 
+ clean::
+ 	$(RM) mkdir.c
  
  depend:: .depend
  
diff -cNdr FreeWnn-1.1.1-a016.orig/Xsi/kWnn/jlib/Makefile.in FreeWnn-1.1.1-a016/Xsi/kWnn/jlib/Makefile.in
*** FreeWnn-1.1.1-a016.orig/Xsi/kWnn/jlib/Makefile.in	Sun Jan 30 16:04:10 2000
--- FreeWnn-1.1.1-a016/Xsi/kWnn/jlib/Makefile.in	Thu Mar  9 15:57:08 2000
***************
*** 68,80 ****
  OBJ7= py_table.o
  SRC8= $(KWNNETCSRC)/zy_table.c
  OBJ8= zy_table.o
  
  LOCAL_RKSRCS= $(KWNNROMKANSRC)/rk_bltinfn.c 	$(KWNNROMKANSRC)/rk_main.c 	$(KWNNROMKANSRC)/rk_modread.c 	$(KWNNROMKANSRC)/rk_read.c 	$(KWNNROMKANSRC)/rk_vars.c
  
  LOCAL_RKOBJS= $(KWNNROMKANSRC)/rk_bltinfn.o 	$(KWNNROMKANSRC)/rk_main.o 	$(KWNNROMKANSRC)/rk_modread.o 	$(KWNNROMKANSRC)/rk_read.o 	$(KWNNROMKANSRC)/rk_vars.o
  
! LOCAL_ETCSRCS = $(SRC4) $(SRC5) $(SRC6) $(SRC7) $(SRC8)
! LOCAL_ETCOBJS = $(OBJ4) $(OBJ5) $(OBJ6) $(OBJ7) $(OBJ8)
  SRCS= $(SRC1) $(SRC3) $(LOCAL_ETCSRCS)
  OBJS= $(OBJ1) $(OBJ3) $(LOCAL_ETCOBJS) $(LOCAL_RKOBJS)
  
--- 68,82 ----
  OBJ7= py_table.o
  SRC8= $(KWNNETCSRC)/zy_table.c
  OBJ8= zy_table.o
+ SRC9= $(KWNNETCSRC)/mkdir.c
+ OBJ9= mkdir.o
  
  LOCAL_RKSRCS= $(KWNNROMKANSRC)/rk_bltinfn.c 	$(KWNNROMKANSRC)/rk_main.c 	$(KWNNROMKANSRC)/rk_modread.c 	$(KWNNROMKANSRC)/rk_read.c 	$(KWNNROMKANSRC)/rk_vars.c
  
  LOCAL_RKOBJS= $(KWNNROMKANSRC)/rk_bltinfn.o 	$(KWNNROMKANSRC)/rk_main.o 	$(KWNNROMKANSRC)/rk_modread.o 	$(KWNNROMKANSRC)/rk_read.o 	$(KWNNROMKANSRC)/rk_vars.o
  
! LOCAL_ETCSRCS = $(SRC4) $(SRC5) $(SRC6) $(SRC7) $(SRC8) $(SRC9)
! LOCAL_ETCOBJS = $(OBJ4) $(OBJ5) $(OBJ6) $(OBJ7) $(OBJ8) $(OBJ9)
  SRCS= $(SRC1) $(SRC3) $(LOCAL_ETCSRCS)
  OBJS= $(OBJ1) $(OBJ3) $(LOCAL_ETCOBJS) $(LOCAL_RKOBJS)
  
***************
*** 193,198 ****
--- 195,203 ----
  	$(CC) -c $(CFLAGS)  $(KWNNETCSRC)/`basename $@ .o`.c
  
  $(OBJ8) : $(SRC8)
+ 	$(CC) -c $(CFLAGS)  $(KWNNETCSRC)/`basename $@ .o`.c
+ 
+ $(OBJ9) : $(SRC9)
  	$(CC) -c $(CFLAGS)  $(KWNNETCSRC)/`basename $@ .o`.c
  
  $(LOCAL_RKOBJS) : $(LOCAL_RKSRCS)
diff -cNdr FreeWnn-1.1.1-a016.orig/Xsi/kWnn/jserver/Makefile.in FreeWnn-1.1.1-a016/Xsi/kWnn/jserver/Makefile.in
*** FreeWnn-1.1.1-a016.orig/Xsi/kWnn/jserver/Makefile.in	Sun Jan 30 16:03:17 2000
--- FreeWnn-1.1.1-a016/Xsi/kWnn/jserver/Makefile.in	Thu Mar  9 15:57:08 2000
***************
*** 75,84 ****
  OBJ13= msg.o
  SRC14= $(KWNNETCSRC)/xutoj.c
  OBJ14= xutoj.o
  
! SRCS= $(SRC0) $(SRC1) $(SRC2) $(SRC3) $(SRC4) $(SRC5) $(SRC6) $(SRC7)       $(SRCGETHINSI) $(SRC9) $(SRC10) $(SRC11) $(SRC12) $(SRC13) $(SRCS14)
  
! OBJS= $(OBJ0) $(OBJ1) $(OBJ2) $(OBJ3) $(OBJ4) $(OBJ5) $(OBJ6) $(OBJ7)       $(OBJGETHINSI) $(OBJ9) $(OBJ10) $(OBJ11) $(OBJ12) $(OBJ13) $(OBJ14)
  
  all:: $(HDRS) $(SRC0) $(SRC1) kserver
  
--- 75,86 ----
  OBJ13= msg.o
  SRC14= $(KWNNETCSRC)/xutoj.c
  OBJ14= xutoj.o
+ SRC15= $(KWNNETCSRC)/mkdir.c
+ OBJ15= mkdir.o
  
! SRCS= $(SRC0) $(SRC1) $(SRC2) $(SRC3) $(SRC4) $(SRC5) $(SRC6) $(SRC7)       $(SRCGETHINSI) $(SRC9) $(SRC10) $(SRC11) $(SRC12) $(SRC13) $(SRCS14) $(SRC15)
  
! OBJS= $(OBJ0) $(OBJ1) $(OBJ2) $(OBJ3) $(OBJ4) $(OBJ5) $(OBJ6) $(OBJ7)       $(OBJGETHINSI) $(OBJ9) $(OBJ10) $(OBJ11) $(OBJ12) $(OBJ13) $(OBJ14) $(OBJ15)
  
  all:: $(HDRS) $(SRC0) $(SRC1) kserver
  
***************
*** 589,594 ****
--- 591,599 ----
  	$(CC) -c $(CFLAGS)  $(KWNNETCSRC)/`basename $@ .o`.c
  
  $(OBJ14) : $(SRC14)
+ 	$(CC) -c $(CFLAGS)  $(KWNNETCSRC)/`basename $@ .o`.c
+ 
+ $(OBJ15) : $(SRC15)
  	$(CC) -c $(CFLAGS)  $(KWNNETCSRC)/`basename $@ .o`.c
  
  depend:: .depend