vine-users ML アーカイブ



[vine-users:051028] Re: netatalk 1.5 のバグ

  • From: Akihiro Okamoto <med012@xxxxxxxxxxxxxxxxxxx>
  • Subject: [vine-users:051028] Re: netatalk 1.5 のバグ
  • Date: Sat, 1 Jun 2002 13:12:12 +0900
岡本@大阪医科大学です。

以前に
On Mon, 27 May 2002 14:06:29 +0900
Akihiro Okamoto <med012@xxxxxxxxxxxxxxxxxxx> wrote:
> Netatalk 1.5のバグおよび対策パッチの作製をおしらせします。

で vine-users ML にパッチを流した件ですが、Netatalk-devel MLで
bugfixのパッチに問題が指摘されました。

以前のパッチでは、ファイルのlockで問題が生じる可能性があります。
修正したパッチを以下につけておきます。また、以前に私のサイトより
netatalk-1.5.3.1-1をダウンロードされた方はご面倒をおかけしますが
netatalk-1.5.3.1-2を作りなおしましたのでそちらをお使い下さい。
(http://www.osaka-med.ac.jp/~med012/HomePage/Vine25/)

シノバーさま、すみませんがVineSeedPlusの方修正お願いいたします。

誠に申し訳ございませんでした。

--- netatalk-1.5.3.1/etc/afpd/fork.c.orig	Thu May 30 12:34:48 2002
+++ netatalk-1.5.3.1/etc/afpd/fork.c	Thu May 30 12:36:48 2002
@@ -852,13 +852,7 @@
         goto afp_read_err;
     }
 
-    /* subtract off the offset */
-    size -= offset;
     savereqcount = reqcount;
-    if (reqcount > size) {
-    	reqcount = size;
-        err = AFPERR_EOF;
-    }
 
     saveoff = offset;
     /* if EOF lock on the old reqcount, some prg may need it */
@@ -882,6 +876,13 @@
     if ((obj->proto == AFPPROTO_DSI) && (*rbuflen < reqcount) && !nlmask) {
         DSI *dsi = obj->handle;
 
+        /* subtract off the offset */
+        size -= offset;
+        if (reqcount > size) {
+            reqcount = size;
+            err = AFPERR_EOF;
+        }
+
         if (obj->options.flags & OPTION_DEBUG) {
             printf( "(read) reply: %d/%d, %d\n", *rbuflen,
                     reqcount, dsi->clientID);

---
  Akihiro Okamoto (med012@xxxxxxxxxxxxxxxxxxx)
       Osaka Medical College, Biochemistry
  http://www.osaka-med.ac.jp/~med012/HomePage/