Check file size to ensure file bigger than 4GB are not added to image.

This commit is contained in:
Vreixo Formoso 2007-12-17 20:47:53 +01:00
parent c8715941e6
commit f279676b6b
3 changed files with 14 additions and 0 deletions

View File

@ -187,17 +187,25 @@ int create_tree(Ecma119Image *image, IsoNode *iso, Ecma119Node **tree,
switch(iso->type) {
case LIBISO_FILE:
ret = create_file(image, (IsoFile*)iso, &node);
if (ret == ISO_FILE_TOO_BIG) {
free(iso_name);
// TODO log
return 0;
}
break;
case LIBISO_SYMLINK:
//TODO only supported with RR
free(iso_name);
return 0;
break;
case LIBISO_SPECIAL:
//TODO only supported with RR
free(iso_name);
return 0;
break;
case LIBISO_BOOT:
//TODO
free(iso_name);
return 0;
break;
case LIBISO_DIR:

View File

@ -35,6 +35,7 @@
#define ISO_FILE_READ_ERROR -107
#define ISO_FILE_IS_NOT_DIR -108
#define ISO_FILE_IS_NOT_SYMLINK -109
#define ISO_FILE_TOO_BIG -110
#define ISO_CHARSET_CONV_ERROR -150

View File

@ -71,6 +71,11 @@ int iso_file_src_create(Ecma119Image *img, IsoFile *file, IsoFileSrc **src)
return ISO_FILE_ERROR;
}
/* Files > 4GB not supported yet, they need ISO level 3 */
if (size > (off_t)0xffffffff) {
return ISO_FILE_TOO_BIG;
}
fsrc = malloc(sizeof(IsoFileSrc));
if (fsrc == NULL) {
return ISO_MEM_ERROR;