I agree with everyone, and I've been in a similar situation, too.
I ALWAYS keep Ethan on a leash, no matter what, since he is extremely shy and sometimes aggressive toward strange dogs, and right as I was wrapping up a walk with Frisk and Ethan, my neighbor's black lab (bigger than Ethan), came running up, not on her leash(heck, she's never on her leash). We've known this lab everysince we moved here, and she has always been so friendly with Frisk, infact, her and Frisk often run around in the upper yard together. But for some reason, she saw Ethan and started growling. I had never heard her growl in the whole 5 years I've been around her. She walked right up to us, got right in Ethan's face and just growled, ready to bite at him, so I slapped her in the nose and told her to go home. Luckily, she listened. I get so fed up with that.
Eventhough, I usually let Frisk run loose in public places sometimes (eventhough there is a city rule ALWAYS have your dog on a leash... no one ever follows it -_-). If I see ANYONE walking anywhere in sight, I call him over and snap his leash back on. He obeys when we call him, so its not a problem.

I'm fed up with this subject, I get worked up about this kind of stuff