tcm_qla2xxx: Handle malformed wwn strings properly
If we make a variable an unsigned int and then expect it to be < 0 on
a bad character, we're going to have a bad time.  Fix the tcm_qla2xxx
code to actually notice if hex_to_bin() returns a negative variable.
This was detected by the compiler warning:
    scsi/qla2xxx/tcm_qla2xxx.c: In function ‘tcm_qla2xxx_npiv_extract_wwn’:
    scsi/qla2xxx/tcm_qla2xxx.c:148:3: warning: comparison of unsigned expression >= 0 is always true [-Wtype-limits]
Signed-off-by: Roland Dreier <roland@purestorage.com>
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
	
	
This commit is contained in:
		
					parent
					
						
							
								9389c3c943
							
						
					
				
			
			
				commit
				
					
						d4f75b567b
					
				
			
		
					 1 changed files with 3 additions and 1 deletions
				
			
		| 
						 | 
				
			
			@ -137,13 +137,15 @@ static char *tcm_qla2xxx_get_fabric_name(void)
 | 
			
		|||
 */
 | 
			
		||||
static int tcm_qla2xxx_npiv_extract_wwn(const char *ns, u64 *nm)
 | 
			
		||||
{
 | 
			
		||||
	unsigned int i, j, value;
 | 
			
		||||
	unsigned int i, j;
 | 
			
		||||
	u8 wwn[8];
 | 
			
		||||
 | 
			
		||||
	memset(wwn, 0, sizeof(wwn));
 | 
			
		||||
 | 
			
		||||
	/* Validate and store the new name */
 | 
			
		||||
	for (i = 0, j = 0; i < 16; i++) {
 | 
			
		||||
		int value;
 | 
			
		||||
 | 
			
		||||
		value = hex_to_bin(*ns++);
 | 
			
		||||
		if (value >= 0)
 | 
			
		||||
			j = (j << 4) | value;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue