arla problems under Solaris 2.6

John Hawkinson jhawk at bbnplanet.com
Fri Jun 19 04:33:05 CEST 1998


> Well, I'm pretty sure removing them works.
> 
> I hadn't thought about copyin(), but in retrospect that makes
> obvious sense. Unfortunately it doesn't work:

Spoke too soon.

We can't copyin() MAXPATHLEN worth of data.
Brute-forcing it shows that we can copy in 584 bytes
from dir and 594 bytes from spec. Not surpringly,
spec-dir=10.

I'm not sure how we're supposed to work this. It's clear there's some
sort of fuzzy constraint, and I don't know when we might hit it.

Nevertheless, persisting in the foolish desire to have this
debugging code:

*** /tmp/T00bNkBV	Thu Jun 18 22:31:09 1998
--- xfs/solaris/xfs_vfsops.c	Thu Jun 18 22:25:04 1998
***************
*** 68,76 ****
    struct vnode *devvp;
    dev_t dev;
    int error;
  
    XFSDEB(XDEBVFOPS, ("xfs_mount vfsp = 0x%x path = %s args = '%s'\n",
! 		   (u_int) vfsp, uap->dir, uap->spec));
  
    /*
     * This is something that should be done before calling this
--- 68,84 ----
    struct vnode *devvp;
    dev_t dev;
    int error;
+ #ifdef DEBUG
+   char dir[MAXNAMELEN], spec[MAXNAMELEN];
+ #endif
  
+ #ifdef DEBUG
+   if (copyin(uap->dir, dir, sizeof(dir)) ||
+       copyin(uap->spec, spec, sizeof(spec)))
+         return EFAULT;
    XFSDEB(XDEBVFOPS, ("xfs_mount vfsp = 0x%x path = %s args = '%s'\n",
! 		   (u_int) vfsp, dir, spec));
! #endif
  
    /*
     * This is something that should be done before calling this

--jhawk





More information about the Arla-drinkers mailing list