The man pages don't cover the state of the sockaddr variable passed by reference into the accept() function in case of an error.
Is it safe to assume that if something goes wrong between the time the client connects and the time you accept it, resulting in a return value of less than 0 from accept(), that the sockaddr struct is still populated and the IP information is valid?