Browse Source

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

release-1.5.4.branch
Vreixo Formoso 15 years ago
parent
commit
f279676b6b
  1. 8
      src/ecma119_tree.c
  2. 1
      src/error.h
  3. 5
      src/filesrc.c

8
src/ecma119_tree.c

@ -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:

1
src/error.h

@ -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

5
src/filesrc.c

@ -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;

Loading…
Cancel
Save