The Canal issue is irrelevant, as McCain was born of two US citizens and thus was born a citizen of the US. Somewhere there is probably a consular report of birth abroad for him, which is the equivalent of an American birth certificate for legal purposes. The problem with Obama is that we're not sure he was actually born in Hawaii. If he wasn't, and mommy was in Kenya at the time, then she as the lone US citizen wasn't enough to get him automatic citizenship upon birth due to her specific circumstances.
That is correct as to Obama but not exactly correct as to McCain.
A reference to an article published Saturday night which includes McCain's birth document is posted on this thread. The Birth Document confirms that he was born in a hospital off the US Base and not subject even to the fiction that he was born in the territorial United States.
Thus his two citizen parents make him a citizen; but in my opinion, there is a good Constitutional argument that he does not meet the Natural Born Constitutional test under Article II, Sec. 1, par. 4.
If the law says that two US citizen parents give you the right to citizenship at birth, that’s what I’d call a natural-born citizen. If this weren’t true, all the kids born of soldiers overseas would not be natural born citizens. This concept of citizenship by birth when born outside the US has been in place since the 1700s.