Can you spot the conditional move depends on uninitialized error here
if (user->first_post){
		curr = user->first_post;	
	}
	while (curr != NULL){
		if (curr != user->first_post){
			printf("\n");
			printf("===\n");
			printf("\n");
		}
		printf("From: %s\n", curr->author);
		printf("Date: %s\n", ctime(curr->date));
		printf("%s\n", curr->contents);
		curr = curr->next;
	}
	printf("------------------------------------------\n");