Check file size to ensure file bigger than 4GB are not added to image.
This commit is contained in:
parent
c8715941e6
commit
f279676b6b
@ -187,17 +187,25 @@ int create_tree(Ecma119Image *image, IsoNode *iso, Ecma119Node **tree,
|
|||||||
switch(iso->type) {
|
switch(iso->type) {
|
||||||
case LIBISO_FILE:
|
case LIBISO_FILE:
|
||||||
ret = create_file(image, (IsoFile*)iso, &node);
|
ret = create_file(image, (IsoFile*)iso, &node);
|
||||||
|
if (ret == ISO_FILE_TOO_BIG) {
|
||||||
|
free(iso_name);
|
||||||
|
// TODO log
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case LIBISO_SYMLINK:
|
case LIBISO_SYMLINK:
|
||||||
//TODO only supported with RR
|
//TODO only supported with RR
|
||||||
|
free(iso_name);
|
||||||
return 0;
|
return 0;
|
||||||
break;
|
break;
|
||||||
case LIBISO_SPECIAL:
|
case LIBISO_SPECIAL:
|
||||||
//TODO only supported with RR
|
//TODO only supported with RR
|
||||||
|
free(iso_name);
|
||||||
return 0;
|
return 0;
|
||||||
break;
|
break;
|
||||||
case LIBISO_BOOT:
|
case LIBISO_BOOT:
|
||||||
//TODO
|
//TODO
|
||||||
|
free(iso_name);
|
||||||
return 0;
|
return 0;
|
||||||
break;
|
break;
|
||||||
case LIBISO_DIR:
|
case LIBISO_DIR:
|
||||||
|
@ -35,6 +35,7 @@
|
|||||||
#define ISO_FILE_READ_ERROR -107
|
#define ISO_FILE_READ_ERROR -107
|
||||||
#define ISO_FILE_IS_NOT_DIR -108
|
#define ISO_FILE_IS_NOT_DIR -108
|
||||||
#define ISO_FILE_IS_NOT_SYMLINK -109
|
#define ISO_FILE_IS_NOT_SYMLINK -109
|
||||||
|
#define ISO_FILE_TOO_BIG -110
|
||||||
|
|
||||||
#define ISO_CHARSET_CONV_ERROR -150
|
#define ISO_CHARSET_CONV_ERROR -150
|
||||||
|
|
||||||
|
@ -71,6 +71,11 @@ int iso_file_src_create(Ecma119Image *img, IsoFile *file, IsoFileSrc **src)
|
|||||||
return ISO_FILE_ERROR;
|
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));
|
fsrc = malloc(sizeof(IsoFileSrc));
|
||||||
if (fsrc == NULL) {
|
if (fsrc == NULL) {
|
||||||
return ISO_MEM_ERROR;
|
return ISO_MEM_ERROR;
|
||||||
|
Loading…
Reference in New Issue
Block a user