From a64cb4185e2a6695d7fe12637fd9b624714fe75e Mon Sep 17 00:00:00 2001 From: Antony Riakiotakis Date: Tue, 26 May 2015 13:45:45 +0200 Subject: Trying to pack image with invalid path crashes --- source/blender/blenkernel/intern/image.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'source/blender/blenkernel/intern') diff --git a/source/blender/blenkernel/intern/image.c b/source/blender/blenkernel/intern/image.c index 7b6e749ea94..f22a519d256 100644 --- a/source/blender/blenkernel/intern/image.c +++ b/source/blender/blenkernel/intern/image.c @@ -1017,7 +1017,12 @@ void BKE_image_packfiles(ReportList *reports, Image *ima, const char *basepath) ImagePackedFile *imapf = MEM_mallocN(sizeof(ImagePackedFile), "Image packed file"); BLI_addtail(&ima->packedfiles, imapf); imapf->packedfile = newPackedFile(reports, ima->name, basepath); - BLI_strncpy(imapf->filepath, ima->name, sizeof(imapf->filepath)); + if (imapf->packedfile) { + BLI_strncpy(imapf->filepath, ima->name, sizeof(imapf->filepath)); + } + else { + BLI_freelinkN(&ima->packedfiles, imapf); + } } else { ImageView *iv; @@ -1026,7 +1031,12 @@ void BKE_image_packfiles(ReportList *reports, Image *ima, const char *basepath) BLI_addtail(&ima->packedfiles, imapf); imapf->packedfile = newPackedFile(reports, iv->filepath, basepath); - BLI_strncpy(imapf->filepath, iv->filepath, sizeof(imapf->filepath)); + if (imapf->packedfile) { + BLI_strncpy(imapf->filepath, iv->filepath, sizeof(imapf->filepath)); + } + else { + BLI_freelinkN(&ima->packedfiles, imapf); + } } } } -- cgit v1.2.3