xfree86: common: replace XNFasprintf() by standard libc asprintf()

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
This commit is contained in:
Enrico Weigelt, metux IT consult
2025-11-06 16:35:53 +01:00
parent e8ec547b93
commit a31c51f337
5 changed files with 68 additions and 46 deletions

View File

@@ -206,12 +206,12 @@ xf86ValidateFontPath(char *path)
continue;
}
else {
XNFasprintf(&p1, "%s%s", dir_elem, DIR_FILE);
flag = stat(p1, &stat_buf);
char pbuf1[PATH_MAX] = { 0 };
snprintf(pbuf1, sizeof(pbuf1)-1, "%s%s", dir_elem, DIR_FILE);
flag = stat(pbuf1, &stat_buf);
if (flag == 0)
if (!S_ISREG(stat_buf.st_mode))
flag = -1;
free(p1);
if (flag != 0) {
LogMessageVerb(X_WARNING, 1,
"`fonts.dir' not found (or not valid) in \"%s\".\n",

View File

@@ -203,14 +203,17 @@ configureScreenSection(int screennum)
{
int i;
int depths[] = { 1, 4, 8, 15, 16, 24 /*, 32 */ };
char *tmp;
char *tmp = NULL;
parsePrologue(XF86ConfScreenPtr, XF86ConfScreenRec);
XNFasprintf(&tmp, "Screen%d", screennum);
if (asprintf(&tmp, "Screen%d", screennum) == -1)
return NULL;
ptr->scrn_identifier = tmp;
XNFasprintf(&tmp, "Monitor%d", screennum);
if (asprintf(&tmp, "Monitor%d", screennum) == -1)
return NULL;
ptr->scrn_monitor_str = tmp;
XNFasprintf(&tmp, "Card%d", screennum);
if (asprintf(&tmp, "Card%d", screennum) == -1)
return NULL;
ptr->scrn_device_str = tmp;
for (i = 0; i < ARRAY_SIZE(depths); i++) {
@@ -366,7 +369,7 @@ configureLayoutSection(void)
}
for (scrnum = 0; scrnum < nDevToConfig; scrnum++) {
char *tmp;
char *tmp = NULL;
XF86ConfAdjacencyPtr aptr = calloc(1, sizeof(XF86ConfAdjacencyRec));
assert(aptr);
@@ -374,7 +377,7 @@ configureLayoutSection(void)
aptr->adj_x = 0;
aptr->adj_y = 0;
aptr->adj_scrnum = scrnum;
XNFasprintf(&tmp, "Screen%d", scrnum);
if (asprintf(&tmp, "Screen%d", scrnum) != -1)
aptr->adj_screen_str = tmp;
if (scrnum == 0) {
aptr->adj_where = CONF_ADJ_ABSOLUTE;
@@ -382,7 +385,8 @@ configureLayoutSection(void)
}
else {
aptr->adj_where = CONF_ADJ_RIGHTOF;
XNFasprintf(&tmp, "Screen%d", scrnum - 1);
tmp = NULL;
if (asprintf(&tmp, "Screen%d", scrnum - 1) != -1)
aptr->adj_refscreen = tmp;
}
ptr->lay_adjacency_lst =
@@ -441,10 +445,11 @@ configureFilesSection(void)
static XF86ConfMonitorPtr
configureMonitorSection(int screennum)
{
char *tmp;
char *tmp = NULL;
parsePrologue(XF86ConfMonitorPtr, XF86ConfMonitorRec);
XNFasprintf(&tmp, "Monitor%d", screennum);
if (asprintf(&tmp, "Monitor%d", screennum) == -1)
return NULL;
ptr->mon_identifier = tmp;
ptr->mon_vendor = XNFstrdup("Monitor Vendor");
ptr->mon_modelname = XNFstrdup("Monitor Model");
@@ -490,10 +495,12 @@ configureDDCMonitorSection(int screennum)
parsePrologue(XF86ConfMonitorPtr, XF86ConfMonitorRec);
XNFasprintf(&tmp, "Monitor%d", screennum);
if (asprintf(&tmp, "Monitor%d", screennum) == -1)
return NULL;
ptr->mon_identifier = tmp;
ptr->mon_vendor = XNFstrdup(ConfiguredMonitor->vendor.name);
XNFasprintf(&ptr->mon_modelname, "%x", ConfiguredMonitor->vendor.prod_id);
if (asprintf(&ptr->mon_modelname, "%x", ConfiguredMonitor->vendor.prod_id) == -1)
FatalError("malloc failed\n");
/* features in centimetres, we want millimetres */
mon_width = 10 * ConfiguredMonitor->features.hsize;
@@ -864,8 +871,11 @@ DoShowOptions(void)
xf86DriverList[i]->driverName);
continue;
}
XNFasprintf(&pSymbol, "%sModuleData",
xf86DriverList[i]->driverName);
if (asprintf(&pSymbol, "%sModuleData",
xf86DriverList[i]->driverName) == -1) {
ErrorF("(EE) malloc failed\n");
continue;
}
initData = LoaderSymbol(pSymbol);
if (initData) {
XF86ModuleVersionInfo *vers = initData->vers;

View File

@@ -1427,14 +1427,15 @@ xf86PciConfigureNewDev(void *busData, struct pci_device *pVideo,
GDevRec * GDev, int *chipset)
{
char busnum[8];
char *tmp;
char *tmp = NULL;
pVideo = (struct pci_device *) busData;
snprintf(busnum, sizeof(busnum), "%d", pVideo->bus);
XNFasprintf(&tmp, "PCI:%s:%d:%d",
busnum, pVideo->dev, pVideo->func);
if (asprintf(&tmp, "PCI:%s:%d:%d",
busnum, pVideo->dev, pVideo->func) == -1)
FatalError("malloc failed\n");
GDev->busID = tmp;
GDev->chipID = pVideo->device_id;

View File

@@ -255,8 +255,6 @@ xf86platformProbe(void)
Bool pci = TRUE;
XF86ConfOutputClassPtr cl, cl_head = (xf86configptr) ?
xf86configptr->conf_outputclass_lst : NULL;
char *driver_path, *path = NULL;
char *curr, *next, *copy;
config_odev_probe(xf86PlatformDeviceProbe);
@@ -264,6 +262,7 @@ xf86platformProbe(void)
pci = FALSE;
}
char *path = NULL;
for (i = 0; i < xf86_num_platform_devices; i++) {
char *busid = xf86_platform_odev_attributes(i)->busid;
@@ -281,18 +280,18 @@ xf86platformProbe(void)
if (xf86ModPathFrom != X_CMDLINE) {
if (cl->driver) {
char driver_path[PATH_MAX] = { 0 };
if (cl->modulepath) {
if (*(cl->modulepath)) {
XNFasprintf(&driver_path, "%s,%s", cl->modulepath, xf86ModulePath);
snprintf(driver_path, sizeof(driver_path)-1, "%s,%s", cl->modulepath, xf86ModulePath);
LogMessageVerb(X_CONFIG, 1, "OutputClass \"%s\" ModulePath for driver %s overridden with \"%s\"\n",
cl->identifier, cl->driver, driver_path);
} else {
XNFasprintf(&driver_path, "%s", xf86ModulePath);
snprintf(driver_path, sizeof(driver_path)-1, "%s", xf86ModulePath);
LogMessageVerb(X_CONFIG, 1, "OutputClass \"%s\" ModulePath for driver %s reset to standard \"%s\"\n",
cl->identifier, cl->driver, driver_path);
}
} else {
driver_path = NULL;
LogMessageVerb(X_CONFIG, 1, "OutputClass \"%s\" ModulePath for driver %s reset to default\n",
cl->identifier, cl->driver);
}
@@ -300,50 +299,62 @@ xf86platformProbe(void)
if (cl->modules) {
LogMessageVerb(X_CONFIG, 1, " and for modules \"%s\" as well\n",
cl->modules);
XNFasprintf(&copy, "%s", cl->modules);
curr = copy;
char *copy = strdup(cl->modules ? cl->modules : "");
char *curr = copy;
char *next;
while ((curr = strtok_r(curr, ",", &next))) {
if (*curr) LoaderSetPath(curr, driver_path);
curr = NULL;
}
free(copy);
}
free(driver_path);
}
else if (cl->modules) {
char driver_path[PATH_MAX] = { 0 };
if (cl->modulepath) {
if (*(cl->modulepath)) {
XNFasprintf(&driver_path, "%s,%s", cl->modulepath, xf86ModulePath);
snprintf(driver_path, sizeof(driver_path)-1, "%s,%s", cl->modulepath, xf86ModulePath);
LogMessageVerb(X_CONFIG, 1, "OutputClass \"%s\" ModulePath for modules %s overridden with \"%s\"\n",
cl->identifier, cl->modules, driver_path);
} else {
XNFasprintf(&driver_path, "%s", xf86ModulePath);
snprintf(driver_path, sizeof(driver_path)-1, "%s", xf86ModulePath);
LogMessageVerb(X_CONFIG, 1, "OutputClass \"%s\" ModulePath for modules %s reset to standard \"%s\"\n",
cl->identifier, cl->modules, driver_path);
}
} else {
driver_path = NULL;
LogMessageVerb(X_CONFIG, 1, "OutputClass \"%s\" ModulePath for modules %s reset to default\n",
cl->identifier, cl->modules);
}
XNFasprintf(&copy, "%s", cl->modules);
curr = copy;
char *copy = strdup(cl->modules ? cl->modules : "");
char *curr = copy;
char *next;
while ((curr = strtok_r(curr, ",", &next))) {
if (*curr) LoaderSetPath(curr, driver_path);
curr = NULL;
}
free(copy);
} else {
driver_path = path; /* Reuse for temporary storage */
if (*(cl->modulepath)) {
XNFasprintf(&path, "%s,%s", cl->modulepath,
path ? path : xf86ModulePath);
char *path2;
if (asprintf(&path2, "%s,%s", cl->modulepath,
path ? path : xf86ModulePath) == -1)
LogMessageVerb(X_ERROR, 1, "memory allocation failed\n");
else {
LogMessageVerb(X_CONFIG, 1, "OutputClass \"%s\" default ModulePath extended to \"%s\"\n",
cl->identifier, path);
cl->identifier, path2);
free(path);
path = path2;
}
} else {
XNFasprintf(&path, "%s", xf86ModulePath);
char *path2 = strdup(xf86ModulePath);
if (!path2)
LogMessageVerb(X_ERROR, 1, "memory allocation failed\n");
else {
LogMessageVerb(X_CONFIG, 1, "OutputClass \"%s\" default ModulePath reset to standard \"%s\"\n",
cl->identifier, path);
cl->identifier, path2);
free(path);
path = path2;
}
}
}
/* Otherwise global module search path is left unchanged */

View File

@@ -714,7 +714,7 @@ void
xf86SbusConfigureNewDev(void *busData, sbusDevicePtr sBus, GDevRec * GDev)
{
char *promPath = NULL;
char *tmp;
char *tmp = NULL;
sBus = (sbusDevicePtr) busData;
GDev->identifier = sBus->descr;
@@ -723,11 +723,11 @@ xf86SbusConfigureNewDev(void *busData, sbusDevicePtr sBus, GDevRec * GDev)
sparcPromClose();
}
if (promPath) {
XNFasprintf(&tmp, "SBUS:%s", promPath);
asprintf(&tmp, "SBUS:%s", promPath);
free(promPath);
}
else {
XNFasprintf(&tmp, "SBUS:fb%d", sBus->fbNum);
asprintf(&tmp, "SBUS:fb%d", sBus->fbNum);
}
GDev->busID = tmp;
}