Проверяйте, что в kernel_source достаточно места:
if (strlen(kernel_source1) + strlen(kernel_source2) + strlen(kernel_source2) >= BUFFER_LEN)
// Обработка ошибки, недостаточно места!
// ...
Даже если Вы можете гарантировать, что места достаточно, то из-за ошибки в другом месте, судя по стилю весьма вероятной, в одном из kernel_sourceN может отсутствовать завершающий нуль.
Вставьте проверку и ищите ошибку в другом месте, в этом фрагменте ошибок нет.
Добрый день. Меня заинтересовал ваш ответ "Проверяйте, что в kernel_source достаточно места:
if (strlen(kernel_source1) + strlen(kernel_source..." на вопрос http://www.liveexpert.org/topic/view/2335896-zdravstvujte-mozhete-pomoch-najti-oshibku-v-kode. Можно с вами обсудить этот ответ?