diff
+ static void safe_free(void *ptr) {
+ 	if (ptr)
+ 		free(ptr);
+ }
+
  	/* ... rest of the code ... */
- 	free(sm_alternate);
- 	free(error_strategy);
+ 	safe_free(sm_alternate);
+ 	safe_free(error_strategy);
