The material of the mesh doesn't match the render because of the subdivision surface modifier. I just tried to add vertices but it doesn't work.
The subsurf modifier is designed to interpolate geometry in between existing vertices. The materials (and their borders) are interpolated as well.
You have a couple of options:
Select an edge loop and add a crease with a value of 1 (you can access the edge crease tool with Crl+E):
Or add a loop cut (Ctrl+R) and move it closer to the existing loops.
The way a subdivision surface modifier works is by dividing faces and even out the angles to result in a smoother surface. However, it doesn't know what the intention of the mapping of your materials is. More faces get added above your tiny bit of white material and it will make those white too.
You can fix this by adding a bevel modifier in front of the subdivision surface modifier. I wouldn't know what settings would work the best in your case because you didn't include a .Blend file. Therefore, you should play around with them. But I advice using something close to the highlighted areas on this image: