easy answer from wikipedia. 224.0.x.x is not the only multicast block
AFAICT the code that was changed by this patch should not have anything to do with other multicast blocks. It generates an IGMPv3 report with destination address 224.0.0.22. So it would be useful to get more information on how exactly it is causing a failure, so we can find the root cause.
from your code it always returns 0.0.0.0 and not the correct origin if your rule doesnt match. this is a different behaviour. before, the origin was used as is and not modified. if the origin is set to zero, the routing of the network doesnt work anymore. this works for local multicast addresses, but not for neighbor networks which are using the routing table but correct me if i'm wrong