libata: use ata_id_c_string()

There were several places where ATA ID strings are manually terminated
and in some places possibly unterminated strings were passed to string
functions which don't limit length like strstr().  This patch converts
all of them over to ata_id_c_string().

Signed-off-by: Tejun Heo <htejun@gmail.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
This commit is contained in:
Tejun Heo
2007-01-02 20:19:40 +09:00
committed by Jeff Garzik
vanhempi a0cf733b33
commit 8bfa79fcb8
6 muutettua tiedostoa jossa 23 lisäystä ja 78 poistoa

Näytä tiedosto

@@ -151,23 +151,13 @@ static const char *bad_ata66_3[] = {
static int hpt_dma_blacklisted(const struct ata_device *dev, char *modestr, const char *list[])
{
unsigned char model_num[ATA_ID_PROD_LEN];
char *s;
unsigned int len;
unsigned char model_num[ATA_ID_PROD_LEN + 1];
int i = 0;
ata_id_string(dev->id, model_num, ATA_ID_PROD, sizeof(model_num));
s = &model_num[0];
len = strnlen(s, sizeof(model_num));
ata_id_c_string(dev->id, model_num, ATA_ID_PROD, sizeof(model_num));
/* ATAPI specifies that empty space is blank-filled; remove blanks */
while ((len > 0) && (s[len - 1] == ' ')) {
len--;
s[len] = 0;
}
while(list[i] != NULL) {
if (!strncmp(list[i], s, len)) {
while (list[i] != NULL) {
if (!strcmp(list[i], model_num)) {
printk(KERN_WARNING DRV_NAME ": %s is not supported for %s.\n",
modestr, list[i]);
return 1;