diff --git a/libxenon/drivers/diskio/ata.c b/libxenon/drivers/diskio/ata.c index 5ba87836..6dbcbbee 100644 --- a/libxenon/drivers/diskio/ata.c +++ b/libxenon/drivers/diskio/ata.c @@ -241,7 +241,8 @@ xenon_ata_dumpinfo(struct xenon_ata_device *dev, char *info) { printf(" * Firmware: %s\n", text); strncpy(text, data + 54, 40); text[40] = 0; - printf(" * Model: %s\n", text); + strncpy(dev->model, text, sizeof(dev->model)); + printf(" * Model: %s\n", dev->model); if (!dev->atapi) { printf(" * Addressing mode: %d\n", dev->addressing_mode); @@ -456,7 +457,8 @@ xenon_atapi_inquiry_model(struct xenon_ata_device *dev) { }; buf[8 + 24] = '\0'; - printf("ATAPI inquiry model: %s\n", &buf[8]); + strncpy(dev->model, &buf[8], sizeof(dev->model)); + printf("ATAPI inquiry model: %s %d\n", dev->model); return 0; } diff --git a/libxenon/drivers/diskio/ata.h b/libxenon/drivers/diskio/ata.h index 35cffdb6..14c10f77 100644 --- a/libxenon/drivers/diskio/ata.h +++ b/libxenon/drivers/diskio/ata.h @@ -80,6 +80,8 @@ extern "C" { struct bdev *bdev; struct xenon_ata_dma_prd * prds; + + char model[0x30]; }; struct xenon_atapi_read {