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

[FDclone-users:01007] ファイルのuid/gidが存在しないユーザのものだった場合



小松です。

ディレクトリに、uidやgidが存在しないユーザのものであるファイル……例えば

   $ ls -l
   合計 0
   -rw-r--r-- 1 hironao  9547 0  4月 24 13:30 yyy
   -rw-r--r-- 1    5194 users 0  4月 24 13:31 zzz

のようなのがある場合、FDclone 3.01では10進表現のuid/gidの後ろに'\0'が紛れ
込んでしまうらしく、表示がそこで途切れます。

以下のパッチ

--- FD-3.01/browse.c~	2012-08-03 00:00:00.000000000 +0900
+++ FD-3.01/browse.c	2013-04-24 15:27:24.166074872 +0900
@@ -640,7 +640,7 @@
  	if (uid == (u_id_t)-1) while (--i >= 0) buf[i] = '?';
  	else if ((up = finduid(uid, NULL)))
  		VOID_C strncpy2(buf, up -> name, &len, 0);
-	else VOID_C Xsnprintf(buf, len + 1, "%-*d", len, (int)uid);
+	else VOID_C Xsnprintf(buf, len + 1, "%-*d", len + 1, (int)uid);

  	return(len);
  }
@@ -656,7 +656,7 @@
  	if (gid == (g_id_t)-1) while (--i >= 0) buf[i] = '?';
  	else if ((gp = findgid(gid, NULL)))
  		VOID_C strncpy2(buf, gp -> name, &len, 0);
-	else VOID_C Xsnprintf(buf, len + 1, "%-*d", len, (int)gid);
+	else VOID_C Xsnprintf(buf, len + 1, "%-*d", len + 1, (int)gid);

  	return(len);
  }

で直ることは直るのですが、なんだかしっくりきません。というのも、このバグ
は3.00lと3.00mの間で埋め込まれたようなのですが、この2つの間のdiffにはこれ
を伺わせるような変更点はないからで……


--
Hironao Komatsu <hirkmt@gmail.com>