It is virtually impossible to write software that is completely free of bugs. Most bugs are benign causing mere annoyance, if they are even noticed. Others can cause larger problems like data loss and lost productivity. The most severe can lead to exploitation resulting in network compromise, denial of service and theft of intellectual property or customer data.

Through my professional career I've learned important processes and practices to build security in to each phase of the development process. I can apply these processes to your software performing security audits of you code base, dynamic analysis and penetration testing for your application.

Fun Exercise

Here's a simple program that reads each line from a text file and prints it to the screen.

What's wrong with this code?

#include <stdio.h>

int main(int argc, char* argv[]))
{
	char copy[80];
	char line[80];

	static const char filename = "file.txt";
	FILE* file = fopen(filename, "r");

	if(file != NULL)
	{
		while(fgets(line, sizeof(line), file) != NULL)
		{
			strncpy(copy, line, strlen(line));
			printf(copy);
		}

		fclose(file);
	}

	return 0;
}

Click here for the answer.