The things that stuck out to me were a kmalloc/kfree and a goto/label (which isn't the biggest giveaway, but the only C I've seen that used gotos and wasn't terrible code is the linux kernel, the goto is also used in the same style as they are in the kernel).