diff options
author | marha <marha@users.sourceforge.net> | 2010-12-12 20:34:06 +0000 |
---|---|---|
committer | marha <marha@users.sourceforge.net> | 2010-12-12 20:34:06 +0000 |
commit | d3ae6e21a12209f5c8cb8c84ba0f68fb69736844 (patch) | |
tree | 62710b8524ebc7675ebd7f4976fd7f9530ce5df2 /xorg-server/hw/xfree86/loader/loadmod.c | |
parent | 0be679f7724e33c2761ebb67846707fb3351167b (diff) | |
parent | 3a20d23b48c1051e1f22295fd886cc7f643417f6 (diff) | |
download | vcxsrv-d3ae6e21a12209f5c8cb8c84ba0f68fb69736844.tar.gz vcxsrv-d3ae6e21a12209f5c8cb8c84ba0f68fb69736844.tar.bz2 vcxsrv-d3ae6e21a12209f5c8cb8c84ba0f68fb69736844.zip |
svn merge ^/branches/released .
Diffstat (limited to 'xorg-server/hw/xfree86/loader/loadmod.c')
-rw-r--r-- | xorg-server/hw/xfree86/loader/loadmod.c | 18 |
1 files changed, 8 insertions, 10 deletions
diff --git a/xorg-server/hw/xfree86/loader/loadmod.c b/xorg-server/hw/xfree86/loader/loadmod.c index 6fcb06df2..dbc16eab7 100644 --- a/xorg-server/hw/xfree86/loader/loadmod.c +++ b/xorg-server/hw/xfree86/loader/loadmod.c @@ -406,22 +406,22 @@ FindModuleInSubdir(const char *dirpath, const char *module) snprintf(tmpBuf, PATH_MAX, "lib%s.so", module);
if (strcmp(direntry->d_name, tmpBuf) == 0) {
- ret = malloc(strlen(tmpBuf) + strlen(dirpath) + 1);
- sprintf(ret, "%s%s", dirpath, tmpBuf);
+ if (asprintf(&ret, "%s%s", dirpath, tmpBuf) == -1)
+ ret = NULL;
break;
}
snprintf(tmpBuf, PATH_MAX, "%s_drv.so", module);
if (strcmp(direntry->d_name, tmpBuf) == 0) {
- ret = malloc(strlen(tmpBuf) + strlen(dirpath) + 1);
- sprintf(ret, "%s%s", dirpath, tmpBuf);
+ if (asprintf(&ret, "%s%s", dirpath, tmpBuf) == -1)
+ ret = NULL;
break;
}
snprintf(tmpBuf, PATH_MAX, "%s.so", module);
if (strcmp(direntry->d_name, tmpBuf) == 0) {
- ret = malloc(strlen(tmpBuf) + strlen(dirpath) + 1);
- sprintf(ret, "%s%s", dirpath, tmpBuf);
+ if (asprintf(&ret, "%s%s", dirpath, tmpBuf) == -1)
+ ret = NULL;
break;
}
}
@@ -933,16 +933,14 @@ doLoadModule(const char *module, const char *path, const char **subdirlist, * now check if the special data object <modulename>ModuleData is
* present.
*/
- p = malloc(strlen(name) + strlen("ModuleData") + 1);
- if (!p) {
+ if (asprintf(&p, "%sModuleData", name) == -1) {
+ p = NULL;
if (errmaj)
*errmaj = LDR_NOMEM;
if (errmin)
*errmin = 0;
goto LoadModule_fail;
}
- strcpy(p, name);
- strcat(p, "ModuleData");
initdata = LoaderSymbol(p);
if (initdata) {
ModuleSetupProc setup;
|