Let $E$ be any real bundle over $X$. I have somehow produced a 'proof' that $2p_1(E)=0$:
By the splitting principle, we can write $E=E_1 \oplus ... \oplus E_n$ where $E_i$ are real line bundles. Then $p_1(E)=c_2(E \otimes \mathbb{C})=c_2(E_1 \otimes \mathbb{C} \oplus ... \oplus E_n \otimes \mathbb{C})=\sum_{i<j} c_1(E_i \otimes \mathbb{C})c_1(E_j \otimes \mathbb{C})$ by Whitney sum formula. Now it is known that $2c_1(E \otimes \mathbb{C})=0$ for any real bundle $E$ (this is in fact true for $c_i$ for odd $i$), so $2p_1(E)=\sum_{i<j} 2c_1(E_i \otimes \mathbb{C})c_1(E_j \otimes \mathbb{C})=0$.
This is absurd. Assume it were true, if $X$ is a 4-manifold then $H^4(X)$ is torsion free, so that the Pontryagin number $p_1(X)=<p_1(TM),[X]>=0$, but there are of course 4-manifolds with nonzero Pontryagin numbers. So where is the mistake in the above proof? Any help would be appreciated!
The splitting principle is not true for real vector bundles and integral cohomology! That is, if $E$ is a real vector bundle on a space $X$ and $Y$ is the flag bundle over $X$ obtained from $E$, then the map $H^*(X;\mathbb{Z})\to H^*(Y;\mathbb{Z})$ is typically not injective. (It is injective if you use $\mathbb{Z}/2$ coefficients, as in the typical applications to Stiefel-Whitney classes, but not with integer coefficients!)