diff --git a/src/ati.c b/src/ati.c index 837b0094..12141757 100644 --- a/src/ati.c +++ b/src/ati.c @@ -203,11 +203,14 @@ ati_gdev_subdriver(pointer options) } if (chip_family == ATI_CHIP_FAMILY_Radeon) { - char *busid; + char *busid = NULL; - XNFasprintf(&busid, "pci:%04x:%02x:%02x.%d", + if (asprintf(&busid, "pci:%04x:%02x:%02x.%d", device->domain, device->bus, device->dev, - device->func); + device->func) == -1) { + ErrorF("ati: malloc() failed\n"); + continue; + } if (busid) { int fd = drmOpen(NULL, busid); diff --git a/src/drmmode_display.c b/src/drmmode_display.c index fd0dea2c..cbb9d6d0 100644 --- a/src/drmmode_display.c +++ b/src/drmmode_display.c @@ -2843,7 +2843,11 @@ Bool drmmode_pre_init(ScrnInfoPtr pScrn, drmmode_ptr drmmode, int cpp) drmmode_clones_init(pScrn, drmmode, mode_res); bus_id_string = DRICreatePCIBusID(info->PciInfo); - XNFasprintf(&provider_name, "%s @ %s", pScrn->chipset, bus_id_string); + if (asprintf(&provider_name, "%s @ %s", pScrn->chipset, bus_id_string) == -1) { + xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "malloc() failed\n"); + return FALSE; + } + free(bus_id_string); xf86ProviderSetup(pScrn, NULL, provider_name); free(provider_name); diff --git a/src/radeon_kms.c b/src/radeon_kms.c index ee6ac941..661628c5 100644 --- a/src/radeon_kms.c +++ b/src/radeon_kms.c @@ -1530,8 +1530,11 @@ static int radeon_get_drm_master_fd(ScrnInfoPtr pScrn) } #endif - XNFasprintf(&busid, "pci:%04x:%02x:%02x.%d", - dev->domain, dev->bus, dev->dev, dev->func); + if (asprintf(&busid, "pci:%04x:%02x:%02x.%d", + dev->domain, dev->bus, dev->dev, dev->func) == -1) { + xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "malloc() failed\n"); + return -1; + } #ifdef __DragonFly__ /* On DragonFlyBSD Appropriate kernel drivers need to be loaded before