While writing some user-space code recently, I ran across two bugs
in the Rock Ridge support code.  First, a bogus return value and
second links on the cd of the form foo->/bar are returned
as foo->//bar.  This should fix it.

 -WJ

BTW, I don't read frequently so reply personally.

--- linux/fs/isofs/rock.c       Tue Jan  4 13:12:23 2000
+++ fixed/fs/isofs/rock.c       Sun Oct  8 02:36:30 2000
@@ -213,7 +213,7 @@
        printk("RR: RE (%x)\n", inode->i_ino);
 #endif
        if (buffer) kfree(buffer);
-       return -1;
+       return 0;
       default:
        break;
       }
@@ -479,21 +479,11 @@
         oldslp = slp;
         slp = (struct SL_component *) (((char *) slp) + slp->len + 2);
 
-        if(slen < 2) {
-          /*
-           * If there is another SL record, and this component record
-           * isn't continued, then add a slash.
-           */
-          if(    ((rr->u.SL.flags & 1) != 0) 
-              && ((oldslp->flags & 1) == 0) ) strcat(rpnt,"/");
-          break;
-        }
+         if(rootflag==0 && (rr->u.SL.flags&1)!=0 && (oldslp->flags&1)==0)
+           strcat(rpnt, "/");
 
-        /*
-         * If this component record isn't continued, then append a '/'.
-         */
-        if(   (!rootflag)
-           && ((oldslp->flags & 1) == 0) ) strcat(rpnt,"/");
+         if(slen < 2)
+           break;
 
        };
        break;
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/

Reply via email to