The gentoo security guys found another way to segfault busybox's decompression code: we can do a null dereference if one of our huffman tables has all zero length codes. This fixes it. (Thanks solar.)
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)
| @@ -271,7 +271,7 @@ int huft_build(unsigned int *b, const unsigned int n, | |
| if (c[0] == n) { /* null input--all zero length codes */ | |
| *t = (huft_t *) NULL; | |
| *m = 0; | |
| - | return 0; |
| + | return 2; |
| } | |
| /* Find minimum and maximum length, bound *m by those */ | |