@@ -38,7 +38,8 @@ static void _init_file_if_needed(
38
38
size_t data_size )
39
39
{
40
40
char path [512 ];
41
- if (snprintf (path , sizeof (path ), "%s_%s" , base_path , suffix ) >= sizeof (path )) {
41
+ int written = snprintf (path , sizeof (path ), "%s_%s" , base_path , suffix );
42
+ if (written < 0 || (size_t ) written >= sizeof (path )) {
42
43
fprintf (stderr , "file path %s_%s too long\n" , base_path , suffix );
43
44
exit (EXIT_FAILURE );
44
45
}
@@ -113,7 +114,8 @@ static void _write_file_chunk(const char* suffix, uint32_t offset, const uint8_t
113
114
if (!base_path ) {
114
115
return ;
115
116
}
116
- if (snprintf (path , sizeof (path ), "%s_%s" , base_path , suffix ) >= sizeof (path )) {
117
+ int written = snprintf (path , sizeof (path ), "%s_%s" , base_path , suffix );
118
+ if (written < 0 || (size_t ) written >= sizeof (path )) {
117
119
fprintf (stderr , "file path %s_%s too long\n" , base_path , suffix );
118
120
exit (EXIT_FAILURE );
119
121
}
@@ -134,7 +136,8 @@ static void _read_file_chunk(const char* suffix, uint32_t offset, uint8_t* chunk
134
136
if (!base_path ) {
135
137
return ;
136
138
}
137
- if (snprintf (path , sizeof (path ), "%s_%s" , base_path , suffix ) >= sizeof (path )) {
139
+ int written = snprintf (path , sizeof (path ), "%s_%s" , base_path , suffix );
140
+ if (written < 0 || (size_t ) written >= sizeof (path )) {
138
141
fprintf (stderr , "file path %s_%s too long\n" , base_path , suffix );
139
142
exit (EXIT_FAILURE );
140
143
}
@@ -144,7 +147,11 @@ static void _read_file_chunk(const char* suffix, uint32_t offset, uint8_t* chunk
144
147
exit (EXIT_FAILURE );
145
148
}
146
149
fseek (f , offset , SEEK_SET );
147
- fread (chunk , 1 , len , f );
150
+ size_t nread = fread (chunk , 1 , len , f );
151
+ if (nread != len ) {
152
+ fprintf (stderr , "expected %zu bytes, got %zu\n" , len , nread );
153
+ exit (EXIT_FAILURE );
154
+ }
148
155
fclose (f );
149
156
}
150
157
0 commit comments