ROMReader: fix specified bound depends on the length of the source argument
It seems gcc have a (new ?) warning that doesn't allow *ncpy functions to have any source length related value as len argument. I've use strdunp to fix this, but I guess there is some other solutions that doesn't require free. use c++ strings ? use strcpy(...); tmp1[strlen(filename) - 4] = 0; ... ? remove the warning in the Makefile ? but as the strdump solution is simple enouth I've keep this.
This commit is contained in:
parent
8c6c2e8071
commit
50755c6a45
|
@ -238,12 +238,13 @@ void * ZIPROMReaderInit(const char * filename)
|
||||||
ZZIP_DIRENT * dirent = zzip_readdir(dir);
|
ZZIP_DIRENT * dirent = zzip_readdir(dir);
|
||||||
if (dir != NULL)
|
if (dir != NULL)
|
||||||
{
|
{
|
||||||
char tmp1[1024];
|
char *tmp1;
|
||||||
char tmp2[1024];
|
char tmp2[1024];
|
||||||
memset(tmp1,0,sizeof(tmp1));
|
|
||||||
memset(tmp2,0,sizeof(tmp2));
|
memset(tmp2,0,sizeof(tmp2));
|
||||||
strncpy(tmp1, filename, strlen(filename) - 4);
|
tmp1 = strndup(filename, strlen(filename) - 4);
|
||||||
sprintf(tmp2, "%s/%s", tmp1, dirent->d_name);
|
sprintf(tmp2, "%s/%s", tmp1, dirent->d_name);
|
||||||
|
free(tmp1);
|
||||||
return zzip_fopen(tmp2, "rb");
|
return zzip_fopen(tmp2, "rb");
|
||||||
}
|
}
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
Loading…
Reference in New Issue