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

[freewnn:00589] Re: jserver -v option & bug fix



>  > そもそも,何故この配列のサイズが 80 なのか,定数名をどうして
>  > 使わないのか,という問題もありますが.
>  > ファイル名の長さとか,ユーザ名の長さとか,あちこちで
>  > バラバラなのが結構ありますよね.#define 切ってるところも
>  > あるけど,それを使っていたり,直接数字を書いてたり.
>  > 値が同じならまだしも,色々違っている.違っているのが
>  > 意味があるのか,ないのか.辞書に書き込まれたり,プロトコル
>  > に関わる部分は変えられないでしょうけど,この辺統一したいところですね.
> 
> 固定長になるべく依存しないように、
> 少しずつ修正していくのはたいへんですかね、
> 関連する修正個所が
> 大きくなるとは思いますが、
そうすべきとは思います.

> 	例えば、ここだと cmd_name[80] になっているようですが、
> 	固定長にせず、argv[0] の長さに対応して malloc して、、といった感じで
そうですね.それでも良いと思います.
この部分は,char *cmd_name; ... cmd_name = argv[0]; でも
充分という気もしてきましたが.
malloc するにしても何にしても,この cmd_name については,
Xsi/Wnn/jserver/error.c の以下の部分が問題になってきます.
(現状でも問題ありかもしれませんが.)

void
error1 (x, y1, y2, y3, y4, y5)
     register char *x;
     int y1, y2, y3, y4, y5;
{
  char buf[512];

  strcpy (buf, cmd_name);       /* strcpy(buf , "jserver:"); */
  strcat (buf, ":");
  strcat (buf, x);
  sprintf (buf, x, y1, y2, y3, y4, y5);
  my_error (buf);
}

char buf[512] をやめて,必要な長さを計算して malloc するように,
やろうと思えばできそうですが,この error1() は,他のところで
malloc() に失敗したときのエラーメッセージ出力に使われているので…
--
矢吹洋一@SRA Linux ソリューション部


http://www.freewnn.org/ FreeWnn Project