#define free(ptr) _test_free(ptr, __FILE__, __LINE__)
#endif // UNIT_TESTING
-void leak_memory() {
+void leak_memory(void);
+void buffer_overflow(void);
+void buffer_underflow(void);
+
+void leak_memory(void) {
int * const temporary = (int*)malloc(sizeof(int));
*temporary = 0;
}
-void buffer_overflow() {
+void buffer_overflow(void) {
char * const memory = (char*)malloc(sizeof(int));
memory[sizeof(int)] = '!';
free(memory);
}
-void buffer_underflow() {
+void buffer_underflow(void) {
char * const memory = (char*)malloc(sizeof(int));
memory[-1] = '!';
free(memory);
extern void buffer_underflow();
// Test case that fails as leak_memory() leaks a dynamically allocated block.
-void leak_memory_test(void **state) {
+static void leak_memory_test(void **state) {
leak_memory();
}
// Test case that fails as buffer_overflow() corrupts an allocated block.
-void buffer_overflow_test(void **state) {
+static void buffer_overflow_test(void **state) {
buffer_overflow();
}
// Test case that fails as buffer_underflow() corrupts an allocated block.
-void buffer_underflow_test(void **state) {
+static void buffer_underflow_test(void **state) {
buffer_underflow();
}