The following says:
Currently, flag burning is not illegal in the United States. The Supreme Court of the United States in its decision from 1969 has ruled that the burning of the flag is protected by the First Amendment. However, the person who burnt the flag can be found guilty of a misdemeanor for starting a fire without a permit.
http://thelawdictionary.org/article/is-flag-burning-illegal/
But this law seems to say that it is illegal:
(a) (1) Whoever knowingly mutilates, defaces, physically defiles, burns, maintains on the floor or ground, or tramples upon any flag of the United States shall be fined under this title or imprisoned for not more than one year, or both.
What is the right one?