Static Checking of Array Index Out-of-Bounds Defects in C Programs Based on Taint Analysis