Are you serious? Should you only be allowed to criticise companies (and people?) when they break the law? That would be the end of free speech.
Obeying the law is not synonymous with doing good. The law is the very bottom line, but there's tons of shitty behaviour that's perfectly legal. That doesn't mean it's okay. There are tons of ways in which you can be an asshole without doing anything illegal. You won't go to prison, but people will criticise and avoid you.
Don't make the law your only basis for morality. Laws can be wrong, and they're certainly not enough. Because if you do that, you're basically demanding that every aspect of society be completely legislated, and that's a really bad idea.