Prevent SIGFPE on entity tile loading issue. (#5178)
authorAuke Kok <sofar+github@foo-projects.org>
Mon, 6 Feb 2017 07:59:18 +0000 (23:59 -0800)
committerGitHub <noreply@github.com>
Mon, 6 Feb 2017 07:59:18 +0000 (23:59 -0800)
commit3e30731c1ac313b504ff15eb7f40ce6a387d3da2
tree86eb9fa3d5539e14185712ad4f6f2d73a9c40ed3
parent80c75272a6ffff34069ed470e959f7ff007e6c06
Prevent SIGFPE on entity tile loading issue. (#5178)

While experimenting with entities I ran into this unresolvable
error where the server is sending some texture that the client
crashes on. The crash prevents the client from ever reconnecting,
resulting in a server that has to use clearobjects.

We shouldn't crash but just ignore the object and move on.

```
0x00000000004dc0de in TextureSource::generateImagePart (this=this@entry=0x7118eb0, part_of_name="[applyfiltersformesh",
    baseimg=@0x7fffffffbe98: 0x9f1b010) at /home/sofar/git/minetest/src/client/tile.cpp:1744
    1744 u32 xscale = scaleto / dim.Width;
    (gdb) bt
    #0  0x00000000004dc0de in TextureSource::generateImagePart (this=this@entry=0x7118eb0, part_of_name="[applyfiltersformesh",
        baseimg=@0x7fffffffbe98: 0x9f1b010) at /home/sofar/git/minetest/src/client/tile.cpp:1744
```

After reconnecting, the client now can connect without issues
and displays an error message:

```
ERROR[Main]: generateImagePart(): Illegal 0 dimension for part_of_name="[applyfiltersformesh", cancelling.
ERROR[Main]: generateImage(): Failed to generate "[applyfiltersformesh"
ERROR[Main]: Irrlicht: Invalid size of image for OpenGL Texture.
```
src/client/tile.cpp