On Sun, Jun 24, 2001 at 11:06:06PM +0200, Rasmus Andersen wrote:
> Hi.

> (My last mail to [EMAIL PROTECTED] bounced. Is there another
> maintainer for drivers/char/ip2main.c somewhere?)

        I'm still here.  :-)  Just look one more line down below
Doug's line.  There I am.

        I'm responsible for the kernel / driver integration end of it
anyways.

        I'll find out what's up with Doug, but this is my issue to deal
with anyways.  And yes, I'm looking at it.  I've got a couple of other
patches on the back burner that are overdue for integration.

> The patch below tries to avoid dereferencing (potential)
> NULL pointers. It was reported by the Stanford team way
> back and applies against 245ac16 and 246p6. It could
> probably be done nicer but that would take someone that
> actually understands this code.

> --- linux-245-ac16-clean/drivers/char/ip2main.c       Sat May 19 20:58:17 2001
> +++ linux-245-ac16/drivers/char/ip2main.c     Sun Jun 24 22:37:27 2001
> @@ -866,36 +866,38 @@
>                       }
>  
>  #ifdef       CONFIG_DEVFS_FS
> -                     sprintf( name, "ipl%d", i );
> -                     i2BoardPtrTable[i]->devfs_ipl_handle =
> -                             devfs_register (devfs_handle, name,
> -                                     DEVFS_FL_DEFAULT,
> -                                     IP2_IPL_MAJOR, 4 * i,
> -                                     S_IRUSR | S_IWUSR | S_IRGRP | S_IFCHR,
> -                                     &ip2_ipl, NULL);
> +                     if (i2BoardPtrTable[i] && pB) {
> +                             sprintf( name, "ipl%d", i );
> +                             i2BoardPtrTable[i]->devfs_ipl_handle =
> +                                     devfs_register (devfs_handle, name,
> +                                                     DEVFS_FL_DEFAULT,
> +                                                     IP2_IPL_MAJOR, 4 * i,
> +                                                     S_IRUSR | S_IWUSR | S_IRGRP | 
>S_IFCHR,
> +                                                     &ip2_ipl, NULL);
>  
> -                     sprintf( name, "stat%d", i );
> -                     i2BoardPtrTable[i]->devfs_stat_handle =
> -                             devfs_register (devfs_handle, name,
> -                                     DEVFS_FL_DEFAULT,
> -                                     IP2_IPL_MAJOR, 4 * i + 1,
> -                                     S_IRUSR | S_IWUSR | S_IRGRP | S_IFCHR,
> -                                     &ip2_ipl, NULL);
> +                             sprintf( name, "stat%d", i );
> +                             i2BoardPtrTable[i]->devfs_stat_handle =
> +                                     devfs_register (devfs_handle, name,
> +                                                     DEVFS_FL_DEFAULT,
> +                                                     IP2_IPL_MAJOR, 4 * i + 1,
> +                                                     S_IRUSR | S_IWUSR | S_IRGRP | 
>S_IFCHR,
> +                                                     &ip2_ipl, NULL);
>  
> -                     for ( box = 0; box < ABS_MAX_BOXES; ++box )
> -                     {
> -                         for ( j = 0; j < ABS_BIGGEST_BOX; ++j )
> -                         {
> -                             if ( pB->i2eChannelMap[box] & (1 << j) )
> +                             for ( box = 0; box < ABS_MAX_BOXES; ++box )
>                               {
> -                                 tty_register_devfs(&ip2_tty_driver,
> -                                     0, j + ABS_BIGGEST_BOX *
> -                                             (box+i*ABS_MAX_BOXES));
> -                                 tty_register_devfs(&ip2_callout_driver,
> -                                     0, j + ABS_BIGGEST_BOX *
> -                                             (box+i*ABS_MAX_BOXES));
> +                                     for ( j = 0; j < ABS_BIGGEST_BOX; ++j )
> +                                     {
> +                                             if ( pB->i2eChannelMap[box] & (1 << j) 
>)
> +                                             {
> +                                                     
>tty_register_devfs(&ip2_tty_driver,
> +                                                                        0, j + 
>ABS_BIGGEST_BOX *
> +                                                                        
>(box+i*ABS_MAX_BOXES));
> +                                                     
>tty_register_devfs(&ip2_callout_driver,
> +                                                                        0, j + 
>ABS_BIGGEST_BOX *
> +                                                                        
>(box+i*ABS_MAX_BOXES));
> +                                             }
> +                                     }
>                               }
> -                         }
>                       }
>  #endif
>  
> -- 
> Regards,
>         Rasmus([EMAIL PROTECTED])
> 
> A chicken and an egg are lying in bed. The chicken is smoking a
> cigarette with a satisfied smile on it's face and the egg is frowning
> and looking a bit pissed off. The egg mutters, to no-one in particular,
> "Well, I guess we answered THAT question..."

-- 
 Michael H. Warfield    |  (770) 985-6132   |  [EMAIL PROTECTED]
  (The Mad Wizard)      |  (678) 463-0932   |  http://www.wittsend.com/mhw/
  NIC whois:  MHW9      |  An optimist believes we live in the best of all
 PGP Key: 0xDF1DD471    |  possible worlds.  A pessimist is sure of it!

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to