func: asmlinkage long CVE_2005_3356_PATCHED_sys_mq_open(const char __user *u_name, int oflag, mode_t struct mq_attr __user *u_attr) struct dentry * dentry ; char * name ; int fd , error ; if ( IS_ERR ( name = getname ( u_name ) ) )  fd = get_unused_fd ( ); if ( fd < 0 )  dentry = lookup_one_len ( name , mqueue_mnt -> mnt_root , strlen ( name ) ); if ( IS_ERR ( dentry ) )  error = PTR_ERR ( dentry ); if ( dentry -> d_inode )  filp = do_open ( dentry , oflag ); filp = do_create ( mqueue_mnt -> mnt_root , dentry , oflag , mode , u_attr ); if ( ! dentry -> d_inode )  filp = do_open ( dentry , oflag ); if ( IS_ERR ( filp ) )  error = PTR_ERR ( filp ); fd_install ( fd , filp ); dput ( dentry ); fd = error; return fd ; 