|  | @@ -524,11 +524,21 @@ int scsiDiskCommand()
 | 
											
												
													
														|  |  	else if (unlikely(command == 0x37))
 |  |  	else if (unlikely(command == 0x37))
 | 
											
												
													
														|  |  	{
 |  |  	{
 | 
											
												
													
														|  |  		// READ DEFECT DATA
 |  |  		// READ DEFECT DATA
 | 
											
												
													
														|  | -		scsiDev.status = CHECK_CONDITION;
 |  | 
 | 
											
												
													
														|  | -		scsiDev.target->sense.code = NO_SENSE;
 |  | 
 | 
											
												
													
														|  | -		scsiDev.target->sense.asc = DEFECT_LIST_NOT_FOUND;
 |  | 
 | 
											
												
													
														|  | -		scsiDev.phase = STATUS;
 |  | 
 | 
											
												
													
														|  | 
 |  | +		uint32_t allocLength = (((uint16_t)scsiDev.cdb[7]) << 8) |
 | 
											
												
													
														|  | 
 |  | +			scsiDev.cdb[8];
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +		scsiDev.data[0] = 0;
 | 
											
												
													
														|  | 
 |  | +		scsiDev.data[1] = scsiDev.cdb[1];
 | 
											
												
													
														|  | 
 |  | +		scsiDev.data[2] = 0;
 | 
											
												
													
														|  | 
 |  | +		scsiDev.data[3] = 0;
 | 
											
												
													
														|  | 
 |  | +		scsiDev.dataLen = 4;
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | 
 |  | +		if (scsiDev.dataLen > allocLength)
 | 
											
												
													
														|  | 
 |  | +		{
 | 
											
												
													
														|  | 
 |  | +			scsiDev.dataLen = allocLength;
 | 
											
												
													
														|  | 
 |  | +		}
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +		scsiDev.phase = DATA_IN;
 | 
											
												
													
														|  |  	}
 |  |  	}
 | 
											
												
													
														|  |  	else
 |  |  	else
 | 
											
												
													
														|  |  	{
 |  |  	{
 |