Police fired teargas at hundreds of striking garment workers during a violent protest in southern Swaziland over pay.