From fc407a14bdcddb41db5804962b496c4e3e860f78 Mon Sep 17 00:00:00 2001 From: "gtm.daemon" Date: Fri, 10 Oct 2014 20:00:07 +0000 Subject: Fix support for file extensions, due to off-by-1 error from not taking the period into account for the total suffix-length to pass to mkstemps. Example failure: template = myTempXXX.ext pathExtension = "ext" [pathExtension length] = 3 Need for mkstemps: suffix-length = 4 (".ext") DELTA=6 (5 added, 0 deleted, 1 changed) DELTA_BY_EXTENSION=m=6 --- Foundation/GTMNSFileHandle+UniqueName.m | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'Foundation') diff --git a/Foundation/GTMNSFileHandle+UniqueName.m b/Foundation/GTMNSFileHandle+UniqueName.m index 536e154..d373159 100644 --- a/Foundation/GTMNSFileHandle+UniqueName.m +++ b/Foundation/GTMNSFileHandle+UniqueName.m @@ -28,7 +28,12 @@ NSString *extension = [pathTemplate pathExtension]; char *pathTemplateCString = strdup([pathTemplate fileSystemRepresentation]); if (!pathTemplateCString) return nil; - int fileDescriptor = mkstemps(pathTemplateCString, (int)[extension length]); + int len = (int)[extension length]; + if (len > 0) { + // Suffix length needs to include a period. + len++; + } + int fileDescriptor = mkstemps(pathTemplateCString, len); if (fileDescriptor == -1) { free(pathTemplateCString); return nil; -- cgit v1.2.3