File tree Expand file tree Collapse file tree 1 file changed +13
-3
lines changed Expand file tree Collapse file tree 1 file changed +13
-3
lines changed Original file line number Diff line number Diff line change @@ -242,26 +242,36 @@ int add_excludes_from_file_to_list(const char *fname,
242
242
if (!check_index ||
243
243
(buf = read_skip_worktree_file_from_index (fname , & size )) == NULL )
244
244
return -1 ;
245
+ if (size == 0 ) {
246
+ free (buf );
247
+ return 0 ;
248
+ }
249
+ if (buf [size - 1 ] != '\n' ) {
250
+ buf = xrealloc (buf , size + 1 );
251
+ buf [size ++ ] = '\n' ;
252
+ }
245
253
}
246
254
else {
247
255
size = xsize_t (st .st_size );
248
256
if (size == 0 ) {
249
257
close (fd );
250
258
return 0 ;
251
259
}
252
- buf = xmalloc (size );
260
+ buf = xmalloc (size + 1 );
253
261
if (read_in_full (fd , buf , size ) != size ) {
262
+ free (buf );
254
263
close (fd );
255
264
return -1 ;
256
265
}
266
+ buf [size ++ ] = '\n' ;
257
267
close (fd );
258
268
}
259
269
260
270
if (buf_p )
261
271
* buf_p = buf ;
262
272
entry = buf ;
263
- for (i = 0 ; i <= size ; i ++ ) {
264
- if (i == size || buf [i ] == '\n' ) {
273
+ for (i = 0 ; i < size ; i ++ ) {
274
+ if (buf [i ] == '\n' ) {
265
275
if (entry != buf + i && entry [0 ] != '#' ) {
266
276
buf [i - (i && buf [i - 1 ] == '\r' )] = 0 ;
267
277
add_exclude (entry , base , baselen , which );
You can’t perform that action at this time.
0 commit comments