func: static CVE_2007_6151_VULN_isdn_ioctl(struct inode *inode, struct file *file, uint cmd, ulong arg) uint minor = iminor ( inode ) ; int ret ; char * s ; void __user * argp = ( void __user * ) arg ; if ( minor == ISDN_MINOR_STATUS )  if ( ! dev -> drivers )  if ( minor <= ISDN_MINOR_BMAX )  if ( minor <= ISDN_MINOR_CTRLMAX )  switch ( cmd )  if ( arg )  if ( copy_from_user ( name , argp , sizeof ( name ) ) )  s = name; s = NULL; ret = down_interruptible ( & dev -> sem ); if ( ret )  if ( s = isdn_net_new ( s , NULL ) )  if ( copy_to_user ( argp , s , strlen ( s ) + 1 ) )  ret = - EFAULT; ret = 0; ret = - ENODEV; if ( arg )  if ( copy_from_user ( bname , argp , sizeof ( bname ) - 1 ) )  ret = down_interruptible ( & dev -> sem ); if ( ret )  if ( s = isdn_net_newslave ( bname ) )  if ( copy_to_user ( argp , s , strlen ( s ) + 1 ) )  