File tree 1 file changed +9
-1
lines changed
1 file changed +9
-1
lines changed Original file line number Diff line number Diff line change @@ -15,6 +15,10 @@ The full license is in the LICENSE file, distributed with this software.
15
15
16
16
void * new_file_source (char * fname , size_t buffer_size ) {
17
17
file_source * fs = (file_source * )malloc (sizeof (file_source ));
18
+ if (fs == NULL ) {
19
+ return NULL ;
20
+ }
21
+
18
22
fs -> fp = fopen (fname , "rb" );
19
23
20
24
if (fs -> fp == NULL ) {
@@ -29,6 +33,9 @@ void *new_file_source(char *fname, size_t buffer_size) {
29
33
fs -> buffer = (char * )malloc ((buffer_size + 1 ) * sizeof (char ));
30
34
31
35
if (fs -> buffer == NULL ) {
36
+ fclose (fs -> fp );
37
+ free (fs );
38
+
32
39
return NULL ;
33
40
}
34
41
@@ -187,7 +194,8 @@ void *new_mmap(char *fname) {
187
194
/* XXX Eventually remove this print statement. */
188
195
fprintf (stderr , "new_file_buffer: mmap() failed.\n" );
189
196
free (mm );
190
- mm = NULL ;
197
+
198
+ return NULL ;
191
199
}
192
200
193
201
return (void * )mm ;
You can’t perform that action at this time.
0 commit comments