Oops - SCSI INQUIRY data uses fixed-length, non-terminated strings -- need to copy the strings to a temp buffer and terminate before using them in printf.

This commit is contained in:
Dean Camera 2009-06-23 09:38:22 +00:00
parent 64937a6206
commit b2cf4d3222
2 changed files with 11 additions and 1 deletions

View File

@ -224,8 +224,17 @@ void MassStorage_Task(void)
break;
}
/* VendorID and ProductID are fixed-length non-null terminated strings - need to terminate them before displaying */
char VendorID[9];
char ProductID[17];
memcpy(&VendorID, &InquiryData.VendorID, 8);
memcpy(&ProductID, &InquiryData.ProductID, 16);
VendorID[8] = 0x00;
ProductID[16] = 0x00;
/* Print vendor and product names of attached device */
printf_P(PSTR("Vendor: %s, Product: %s\r\n"), InquiryData.VendorID, InquiryData.ProductID);
printf_P(PSTR("Vendor \"%s\", Product \"%s\"\r\n"), VendorID, ProductID);
/* Wait until disk ready */
puts_P(PSTR("Waiting until ready.."));

View File

@ -43,6 +43,7 @@
#include <avr/power.h>
#include <stdio.h>
#include <ctype.h>
#include <string.h>
#include "ConfigDescriptor.h"