[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: xplc: FTBFS on hurd-i386 (for review)



Svante Signell, le Thu 30 Aug 2012 19:07:19 +0200, a écrit :
> @@ -83,7 +89,8 @@
>  #if !defined(WIN32)
>    DIR* dir;
>    struct dirent* ent;
> -  char fname[PATH_MAX];
> +  char *fname = NULL;
> +  int len = 0;
>    IServiceManager* servmgr = XPLC_getServiceManager();
>    IModuleLoader* loader;
>    ModuleNode* modules = 0;
> @@ -106,7 +113,9 @@
>    while((ent = readdir(dir))) {
>      IModule* module;
>  
> -    snprintf(fname, PATH_MAX, "%s/%s", directory, ent->d_name);
> +    len = strlen(directory) + 1 + strlen(ent->d_name) + 1;
> +    fname = (char*)malloc(len);

fname gets allocated at each while loop iteration, but only freed once
later.  You need to either just free before allocating with the new
size, or reuse the same buffer (extending it if needed).

> +    snprintf(fname, len, "%s/%s", directory, ent->d_name);
>  
>      module = loader->loadModule(fname);
>      if(module) {
> @@ -117,6 +126,7 @@
>      }
>    }
>  
> +  free(fname);
>    loader->release();
>  
>    closedir(dir);


-- 
Samuel
<D> N: j'aime bien Cut d'un truc enorme... ca montre de quel cote de l'ecran sont les couilles :)))
 -+- #ens-mim et la peufeupeu -+-


Reply to: