On Mon, Dec 12, 2016 at 02:10:31PM +0000, Emil Velikov wrote: > On 10 December 2016 at 05:52, Jonathan Gray <jsg@xxxxxxxxx> wrote: > > When constructing a path to a device node the minor number retrieved > > from fstat needs to have the offset of the node type subtracted from it. > > Control and render node types have the same major as the primary node > > but each has their own block of minor types at fixed offsets. > > > > Signed-off-by: Jonathan Gray <jsg@xxxxxxxxx> > > --- > > xf86drm.c | 16 ++++++++++++---- > > 1 file changed, 12 insertions(+), 4 deletions(-) > > > > diff --git a/xf86drm.c b/xf86drm.c > > index 2e8c956..6705605 100644 > > --- a/xf86drm.c > > +++ b/xf86drm.c > > @@ -2838,7 +2838,7 @@ out_close_dir: > > char buf[PATH_MAX + 1]; > > const char *dev_name; > > unsigned int maj, min; > > - int n; > > + int n, base; > > > > if (fstat(fd, &sbuf)) > > return NULL; > > @@ -2863,7 +2863,11 @@ out_close_dir: > > return NULL; > > }; > > > > - n = snprintf(buf, sizeof(buf), dev_name, DRM_DIR_NAME, min); > > + base = drmGetMinorBase(type); > > + if (base < 0 || min < base) > min < base seems bogus, since it will never be true, right ? If so can > we drop it please. > > Same goes below and in 2/3. > Emil For drmGetDevice2() and drmGetDeviceNameFromFd2() yes as it should be caught by drmGetMinorType(). For drmGetMinorNameForFD() it would be possible for a minor number to be wrong and have it not caught as the type comes from an argument not inspection of the /dev node. A sanity check of the type argument could be made based on the minor found on disk but that ends up being the same kind of test. _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel