Current implementation utilize off-by-one `struct prison_ip` to access the IPv[46] addresses. It is error prone and hence comes the regression fix D37732, D37871 and D37872 . Use flexible array member so that compiler will catch the errors and it is also easier to review.
No functional change intended.