Well if there actually was a bug, as you state, you are clearly in the right to point it out. Both parties in a communication have a responsibility. The party criticizing the code has a responsibility be factual, concrete and constructive, and to only criticize the code, not the personality of the author. The recipient of criticism on the other hand have the responsibility to listen and not become defensive or take criticism of the code personally.
Personally though, it also really irks me when someone carefully explains me something I already know, so I understand the mindset.