With -a, the jump to mount_it_now can skip the initialization of f, and if we don't zero it after closing it we re-close a filehandle that isn't open, and since this is a file _pointer_ it segfaults on a double free.
This commit was genuinely broken at the time (not related to our build system): scripts/config/mkconfigs.c (2005-08-01 - 2006-10-05 arasi) uretilen bbconfigopts.h icine .config satirlarini kacissiz, ham newline'larla gömüyordu - gecerli C degildi, busybox'un kendi bb_mkdep araci bile parse edemiyordu (7d219aab7 ile duzeltildi, mkconfigs shell scripte cevrildi)
No binary (build failed)
—
(log yok)
| @@ -327,8 +327,11 @@ mount_it_now: | |
| } | |
| if(!rc || !f) break; | |
| } | |
| - | if(f) fclose(f); |
| - | if(!f || !rc) break; |
| + | if(!f) break; |
| + | fclose(f); |
| + | // goto mount_it_now with -a can jump past the initialization |
| + | f=0; |
| + | if(!rc) break; |
| } | |
| /* If the mount was successful, and we're maintaining an old-style | |