mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 02:30:34 +02:00 
			
		
		
		
	tty: don't crash in tty_init_dev when missing tty_port
We currently warn the user when tty->port is not set in tty_init_dev yet. The warning says that the kernel will crash later. And it really will only few lines below at: tty->port->itty = tty; So be nice and avoid the crash -- return an error instead. And update the warning. Signed-off-by: Jiri Slaby <jslaby@suse.cz> Cc: Sudip Mukherjee <sudipm.mukherjee@gmail.com> Link: https://lore.kernel.org/r/20191122101721.7222-1-jslaby@suse.cz Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
		
							parent
							
								
									1250ed7114
								
							
						
					
					
						commit
						2ae0b31e0f
					
				
					 1 changed files with 6 additions and 3 deletions
				
			
		| 
						 | 
				
			
			@ -1344,9 +1344,12 @@ struct tty_struct *tty_init_dev(struct tty_driver *driver, int idx)
 | 
			
		|||
	if (!tty->port)
 | 
			
		||||
		tty->port = driver->ports[idx];
 | 
			
		||||
 | 
			
		||||
	WARN_RATELIMIT(!tty->port,
 | 
			
		||||
			"%s: %s driver does not set tty->port. This will crash the kernel later. Fix the driver!\n",
 | 
			
		||||
			__func__, tty->driver->name);
 | 
			
		||||
	if (WARN_RATELIMIT(!tty->port,
 | 
			
		||||
			"%s: %s driver does not set tty->port. This would crash the kernel. Fix the driver!\n",
 | 
			
		||||
			__func__, tty->driver->name)) {
 | 
			
		||||
		retval = -EINVAL;
 | 
			
		||||
		goto err_release_lock;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	retval = tty_ldisc_lock(tty, 5 * HZ);
 | 
			
		||||
	if (retval)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue