Andreas Kirschbaum wrote: > The attached patches fixes a bug with diseases cast on tiled maps. (This > bug did crash the server on metalforge some days ago.) > > Basically, the bug is that the loop variables (x and y) in > check_infection() are modified by get_map_flags(), resulting in an > infinite loop. My fix uses some temp variables for the result values, > leaving the loop variables unchanged. That looks good. > > I checked all other calls of get_map_flags() for similar problems. (I > did not actually tested these other fixes.) Looks like other ones could have similar problems. > > But I have some concerns with the change to magic_wall() in > server/spell_effect.c: it does not feel right to me that the existing > code used the leftover value from the previous loop for "m". Therefore I > added "m=tmp->map" because "x" and "y" use the coordinates from "tmp" as > well. Yes - I think that fix is valid also. I'm not sure how often a problem would show up - you'd have to cast the spell near the seam of one of the tiled maps, and without the map being set right, what would probably happen is a wall showing up someplace odd, but probably far enough from the player they wouldn't immediately see it. At least in that case, it is unlikely to actually cause a crash/infinite loop. So it looks fine to apply the patch. _______________________________________________ crossfire-devel mailing list crossfire-devel at lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel