No es problema de consulta mas bien diria que es problema de ambito de tus variables php, mira si tu select no te devuelve resultado entonces no entra dentro de tu if, y si no entra la variable resultado no tiene nada para que se libere con mysql_free_result(), por que no lo modificas y lo pones dentro del if :
Código PHP:
<? include("../conexion.php");
$con=bd_conexion();
$cambiaReserva=$_POST["cambiaReserva"];
$idReserva=$_POST["idReserva"];
$ssql = "SELECT * FROM reservahabitaciones WHERE id='$idReserva'";
$rs = mysql_query($ssql,$con);
if (mysql_num_rows($rs)!=0){
$modificar="UPDATE reservahabitaciones SET estadoReserva='$cambiaReserva' WHERE id='$idReserva'";
$resultado=mysql_query($modificar,$con);
mysql_free_result($resultado);
}
mysql_free_result($rs);
mysql_close($con);
?>
cya