From owner-ports-jp@jp.freebsd.org  Thu Mar  9 17:01:13 2000
Received: (from daemon@localhost)
	by castle.jp.freebsd.org (8.9.3+3.2W/8.7.3) id RAA28545;
	Thu, 9 Mar 2000 17:01:13 +0900 (JST)
	(envelope-from owner-ports-jp@jp.FreeBSD.org)
Received: from serio.al.rim.or.jp (serio.al.rim.or.jp [202.247.191.123])
	by castle.jp.freebsd.org (8.9.3+3.2W/8.7.3) with ESMTP id RAA28538
	for <ports-jp@jp.freebsd.org>; Thu, 9 Mar 2000 17:01:12 +0900 (JST)
	(envelope-from kuriyama@FreeBSD.org)
Received: from mail1.rim.or.jp
	by serio.al.rim.or.jp (8.9.3/3.7W/HMX-12) id RAA03399;
	Thu, 9 Mar 2000 17:01:05 +0900 (JST)
Received: from rhea.sky.rim.or.jp (pppb54.kt.rim.or.jp [202.247.163.154]) by mail1.rim.or.jp (3.7W)
	id RAA04808; Thu, 9 Mar 2000 17:01:03 +0900 (JST)
Received: from localhost.sky.rim.or.jp (localhost [127.0.0.1])
	by rhea.sky.rim.or.jp (8.9.3/3.7W/rhea-1.2) with ESMTP id RAA92076;
	Thu, 9 Mar 2000 17:01:02 +0900 (JST)
Date: Thu, 09 Mar 2000 17:01:01 +0900
Message-ID: <86r9dky3lu.wl@localhost.sky.rim.or.jp>
From: Jun Kuriyama <kuriyama@FreeBSD.org>
To: ports-jp@jp.freebsd.org
In-Reply-To: In your message of "Thu, 09 Mar 2000 00:03:34 +0900"
	<57633.952527814@ideon.st.ryukoku.ac.jp>
References: <86vh2yo0qu.wl@cheerful.com>
	<57633.952527814@ideon.st.ryukoku.ac.jp>
User-Agent: Wanderlust/2.2.16 (No Son Of Mine) SEMI/1.13.7 (Awazu) FLIM/1.13.2 (Kasanui) MULE XEmacs/21.1 (patch 8) (Bryce Canyon) (i386--freebsd)
Cc: Jun Kuriyama <kuriyama@FreeBSD.org>
MIME-Version: 1.0 (generated by SEMI 1.13.7 - "Awazu")
Content-Type: text/plain; charset=ISO-2022-JP
Reply-To: ports-jp@jp.freebsd.org
Precedence: list
X-Distribute: distribute version 2.1 (Alpha) patchlevel 24e+990727
X-Sequence: ports-jp 9064
Subject: [ports-jp 9064] Re: uum/canuum/jserver (was Re: lynx should be forbidden)
Errors-To: owner-ports-jp@jp.freebsd.org
Sender: owner-ports-jp@jp.freebsd.org
X-Originator: kuriyama@FreeBSD.org


$B!!$J$s$+<j85$G$O(B Wnn4.2 $B$N(B configure stage $B$G;_$C$F$7$^$&$N$G%A%'%C%/40(B
$BN;$H$^$G$O9T$C$F$$$^$;$s$,!#(B

From: kjm@rins.ryukoku.ac.jp (KOJIMA Hajime /    $B>.EgH%(B)
> <http://www.st.ryukoku.ac.jp/~kjm/security/memo/1999/1999-11-17.uum.txt>

>   $B$,!"$3$l$N(B Wnn 4.2 ports $B$X$NH?1G$*$h$S(B canuum $B$X$NE,MQ$O$5$l$F$$$J(B
>   $B$$$h$&$K8+$($^$9(B (canna $B$N%i%$%V%i%j$b(B buffer overflow $B$9$k$N$G!"(Buum
>   $B$X$N(B fix $BJ,$rE,MQ$9$l$P:Q$`$o$1$8$c$J$$$G$9(B)$B!#(B

$B!!$3$l$d$C$F$_$^$7$?!#C/$+$3$l$G$&$^$/$$$/$h$&$J$i65$($F$/$@$5$$!#(B
commit $B$7$A$c$$$^$9!#(B


Index: patch-ak
===================================================================
RCS file: /home/ncvs/ports/japanese/Wnn/patches/patch-ak,v
retrieving revision 1.1
diff -u -r1.1 patch-ak
--- patch-ak	1997/09/10 06:51:56	1.1
+++ patch-ak	2000/03/09 07:54:53
@@ -1,5 +1,5 @@
---- ../Xsi.orig/Wnn/uum/jhlp.c	Fri Aug 19 10:32:12 1994
-+++ ./Wnn/uum/jhlp.c	Fri Aug  1 18:54:18 1997
+--- Wnn/uum/jhlp.c.orig	Thu Mar  9 16:34:56 2000
++++ Wnn/uum/jhlp.c	Thu Mar  9 16:44:26 2000
 @@ -80,6 +80,9 @@
  
  jmp_buf kk_env;
@@ -10,8 +10,37 @@
  #ifdef SYSVR2
  #	include <sys/param.h>
  #endif /* SYSVR2 */
-@@ -263,9 +266,11 @@
+@@ -168,12 +171,14 @@
  
+     strcpy(username, getpwuid(getuid())->pw_name);
+     if((name = getenv(WNN_USERNAME_ENV)) != NULL){
+-	strcpy(username, name);
++	strncpy(username, name, PATHNAMELEN - 1);
++	username[PATHNAMELEN - 1] = '\0';
+     }
+     for (i = 1; i < argc;) {
+ 	if (!strcmp(argv[i++], "-L")) {
+ 	    if (i >= argc || argv[i][0] == '-') default_usage();
+-	    strcpy(lang_dir, argv[i++]);
++	    strncpy(lang_dir, argv[i++], 31);
++	    lang_dir[31] = '\0';
+ 	    for (;i < argc; i++) {
+ 		argv[i - 2] = argv[i];
+ 	    }
+@@ -233,8 +238,9 @@
+ 	    server_env = WNN_DEF_SERVER_ENV;
+ 	}
+ 	if(name = getenv(server_env)) {
+-	    strcpy(def_servername, name);
+-	    strcpy(def_reverse_servername, name);
++	    strncpy(def_servername, name, PATHNAMELEN - 1);
++	    def_servername[PATHNAMELEN - 1] = '\0';
++	    strcpy(def_reverse_servername, def_servername);
+ 	}
+     }
+ 
+@@ -263,9 +269,11 @@
+ 
  
  #if defined(BSD42) && !defined(DGUX)
 +#if !(defined(BSD) && (BSD >= 199306))
@@ -21,8 +50,60 @@
 +#endif
  #endif /* BSD42 */
  
+ 
+@@ -492,7 +500,8 @@
+ 
+ static int do_k_opt()
+ {
+-    strcpy(uumkey_name_in_uumrc, optarg);
++    strncpy(uumkey_name_in_uumrc, optarg, PATHNAMELEN - 1);
++    uumkey_name_in_uumrc[PATHNAMELEN - 1] = '\0';
+     if (*uumkey_name_in_uumrc == '\0') {
+ 	return -1;
+     }
+@@ -502,7 +511,8 @@
+ 
+ static int do_c_opt()
+ {
+-    strcpy(convkey_name_in_uumrc, optarg);
++    strncpy(convkey_name_in_uumrc, optarg, PATHNAMELEN - 1);
++    convkey_name_in_uumrc[PATHNAMELEN - 1] = '\0';
+     if (*convkey_name_in_uumrc == '\0') {
+ 	return -1;
+     }
+@@ -512,7 +522,8 @@
+ 
+ static int do_r_opt()
+ {
+-    strcpy(rkfile_name_in_uumrc, optarg);
++    strncpy(rkfile_name_in_uumrc, optarg, PATHNAMELEN - 1);
++    rkfile_name_in_uumrc[PATHNAMELEN - 1] = '\0';
+     if (*rkfile_name_in_uumrc == '\0') {
+ 	return -1;
+     }
+@@ -528,8 +539,9 @@
  
-@@ -771,7 +776,12 @@
+ static int do_D_opt()
+ {
+-    strcpy(def_servername, optarg);
+-    strcpy(def_reverse_servername, optarg);
++    strncpy(def_servername, optarg, PATHNAMELEN - 1);
++    def_servername[PATHNAMELEN - 1] = '\0';
++    strcpy(def_reverse_servername, def_servername);
+     if (*def_servername == '\0') {
+ 	return -1;
+     }
+@@ -538,7 +550,8 @@
+ 
+ static int do_n_opt()
+ {
+-    strcpy(username, optarg);
++    strncpy(username, optarg, PATHNAMELEN - 1);
++    username[PATHNAMELEN - 1] = '\0';
+     if (*username == '\0') {
+ 	return -1;
+     }
+@@ -771,7 +784,12 @@
  #endif
      int pid;
  
@@ -36,7 +117,7 @@
  	if (WIFSTOPPED(status)) {
  #ifdef SIGCONT
  	    kill(pid, SIGCONT);
-@@ -1140,9 +1150,11 @@
+@@ -1140,9 +1158,11 @@
  	setpgrp(0, pid);
  #endif /* BSD42 */
  
@@ -48,7 +129,7 @@
  
  #ifdef linux
  	setsid();
-@@ -1562,9 +1574,11 @@
+@@ -1562,9 +1582,11 @@
  	perror(prog);
      }
  
@@ -60,7 +141,7 @@
  #ifdef TIOCSSIZE
      pty_rowcol.ts_lines = 0;
      pty_rowcol.ts_cols = 0;
-@@ -1636,7 +1650,16 @@
+@@ -1636,7 +1658,16 @@
  char *b, *pty;
  int no;
  {
Index: patch-cd
===================================================================
RCS file: patch-cd
diff -N patch-cd
--- /dev/null	Thu Mar  9 13:00:24 2000
+++ patch-cd	Thu Mar  9 16:54:53 2000
@@ -0,0 +1,14 @@
+--- Wnn/jlib/js.c~	Thu Mar  9 16:34:55 2000
++++ Wnn/jlib/js.c	Thu Mar  9 16:49:51 2000
+@@ -325,7 +325,10 @@
+ char *pserver;
+ {
+     register char *p;
+-    strcpy(pserver, server);
++    /* Workaround for pserver buffer overrun : Nov 11,1999 by T.Aono */
++    /* assumes pserver[64]. variable length string is not supported. */
++    strncpy(pserver, server, 64 - 1);
++    pserver[64 - 1] = '\0';
+     p = pserver;
+     for( ; *p && *p != ':'; p++) ;
+     if (!*p) return(0);	/* does not have a colon */


-- 
Jun Kuriyama <kuriyama@FreeBSD.org> / FreeBSD Project
