Ryan Hanigan's passed ball and Scott Rolen's error keep Giants' hopes alive