Bug 694899: Avoid using invalid gstate pointer.
Bug 694899: Avoid using invalid gstate pointer.

When we call pdf_begin_group, this can go away and do lots of
drawing. This can result in the gstate stack growing, which can
involve a realloc. Any gstate pointer we are holding must therefore
be recalculated after such a call.

The neatest way to do this is to get pdf_begin_group to return
the gstate pointer, thus making it hard to forget to do.

This solves:

  e2a1dda5393f4cb8a446fd8edd9d94f9_asan_heap-uaf_b938cf_2075_2393.pdf

Thanks to Mateusz Jurczyk and Gynvael Coldwind of the Google Security
Team for providing the example files.

ziel/mupdf,tribals/mupdf,lolo32/mupdf-mirror,fluks/mupdf-x11-bookmarks,derek-watson/mupdf,lamemate/mupdf,kobolabs/mupdf,loungeup/mupdf,knielsen/mupdf,TamirEvan/mupdf,fluks/mupdf-x11-bookmarks,MokiMobility/muPDF,github201407/MuPDF,kobolabs/mupdf,muennich/mupdf,ccxvii/mupdf,wild0/opened_mupdf,github201407/MuPDF,asbloomf/mupdf,samturneruk/mupdf_secure_android,zeniko/mupdf,ziel/mupdf,flipstudio/MuPDF,ylixir/mupdf,wild0/opened_mupdf,hxx0215/MuPDFMirror,nqv/mupdf,fluks/mupdf-x11-bookmarks,ccxvii/mupdf,poor-grad-student/mupdf,loungeup/mupdf,loungeup/mupdf,samturneruk/mupdf_secure_android,lamemate/mupdf,Kalp695/mupdf,nqv/mupdf,hackqiang/mupdf,robamler/mupdf-nacl,wild0/opened_mupdf,ArtifexSoftware/mupdf,ccxvii/mupdf,ArtifexSoftware/mupdf,flipstudio/MuPDF,sebras/mupdf,github201407/MuPDF,samturneruk/mupdf_secure_android,hackqiang/mupdf,nqv/mupdf,kobolabs/mupdf,hxx0215/MuPDFMirror,asbloomf/mupdf,ArtifexSoftware/mupdf,ccxvii/mupdf,lustersir/MuPDF,benoit-pierre/mupdf,poor-grad-student/mupdf,FabriceSalvaire/mupdf-cmake,seagullua/MuPDF,zeniko/mupdf,Kalp695/mupdf,flipstudio/MuPDF,muennich/mupdf,tribals/mupdf,ylixir/mupdf,benoit-pierre/mupdf,asbloomf/mupdf,isavin/humblepdf,wild0/opened_mupdf,hackqiang/mupdf,poor-grad-student/mupdf,asbloomf/mupdf,robamler/mupdf-nacl,geetakaur/NewApps,xiangxw/mupdf,lolo32/mupdf-mirror,tribals/mupdf,TamirEvan/mupdf,hackqiang/mupdf,PuzzleFlow/mupdf,fluks/mupdf-x11-bookmarks,knielsen/mupdf,hjiayz/forkmupdf,lustersir/MuPDF,TamirEvan/mupdf,muennich/mupdf,MokiMobility/muPDF,poor-grad-student/mupdf,hxx0215/MuPDFMirror,xiangxw/mupdf,MokiMobility/muPDF,hjiayz/forkmupdf,wild0/opened_mupdf,geetakaur/NewApps,lolo32/mupdf-mirror,samturneruk/mupdf_secure_android,FabriceSalvaire/mupdf-cmake,hxx0215/MuPDFMirror,PuzzleFlow/mupdf,ArtifexSoftware/mupdf,kobolabs/mupdf,robamler/mupdf-nacl,nqv/mupdf,FabriceSalvaire/mupdf-cmake,benoit-pierre/mupdf,Kalp695/mupdf,knielsen/mupdf,TamirEvan/mupdf,knielsen/mupdf,kobolabs/mupdf,TamirEvan/mupdf,github201407/MuPDF,flipstudio/MuPDF,hackqiang/mupdf,isavin/humblepdf,ArtifexSoftware/mupdf,seagullua/MuPDF,benoit-pierre/mupdf,PuzzleFlow/mupdf,ylixir/mupdf,ylixir/mupdf,loungeup/mupdf,robamler/mupdf-nacl,geetakaur/NewApps,github201407/MuPDF,lustersir/MuPDF,nqv/mupdf,benoit-pierre/mupdf,seagullua/MuPDF,Kalp695/mupdf,fluks/mupdf-x11-bookmarks,loungeup/mupdf,lustersir/MuPDF,tribals/mupdf,MokiMobility/muPDF,kobolabs/mupdf,muennich/mupdf,sebras/mupdf,ziel/mupdf,zeniko/mupdf,hackqiang/mupdf,fluks/mupdf-x11-bookmarks,derek-watson/mupdf,samturneruk/mupdf_secure_android,lamemate/mupdf,hxx0215/MuPDFMirror,lolo32/mupdf-mirror,sebras/mupdf,isavin/humblepdf,muennich/mupdf,ArtifexSoftware/mupdf,lustersir/MuPDF,zeniko/mupdf,nqv/mupdf,TamirEvan/mupdf,MokiMobility/muPDF,lamemate/mupdf,lamemate/mupdf,ArtifexSoftware/mupdf,isavin/humblepdf,samturneruk/mupdf_secure_android,tribals/mupdf,Kalp695/mupdf,derek-watson/mupdf,muennich/mupdf,MokiMobility/muPDF,muennich/mupdf,github201407/MuPDF,hjiayz/forkmupdf,lolo32/mupdf-mirror,kobolabs/mupdf,PuzzleFlow/mupdf,fluks/mupdf-x11-bookmarks,derek-watson/mupdf,tribals/mupdf,xiangxw/mupdf,ziel/mupdf,knielsen/mupdf,derek-watson/mupdf,geetakaur/NewApps,xiangxw/mupdf,flipstudio/MuPDF,PuzzleFlow/mupdf,FabriceSalvaire/mupdf-cmake,sebras/mupdf,FabriceSalvaire/mupdf-cmake,lustersir/MuPDF,Kalp695/mupdf,poor-grad-student/mupdf,asbloomf/mupdf,hjiayz/forkmupdf,isavin/humblepdf,ccxvii/mupdf,robamler/mupdf-nacl,zeniko/mupdf,flipstudio/MuPDF,derek-watson/mupdf,loungeup/mupdf,geetakaur/NewApps,isavin/humblepdf,seagullua/MuPDF,PuzzleFlow/mupdf,benoit-pierre/mupdf,seagullua/MuPDF,ziel/mupdf,wild0/opened_mupdf,hxx0215/MuPDFMirror,TamirEvan/mupdf,sebras/mupdf,xiangxw/mupdf,Kalp695/mupdf,ylixir/mupdf,lolo32/mupdf-mirror,zeniko/mupdf,TamirEvan/mupdf,ziel/mupdf,PuzzleFlow/mupdf,hjiayz/forkmupdf,isavin/humblepdf,robamler/mupdf-nacl,ArtifexSoftware/mupdf,knielsen/mupdf,FabriceSalvaire/mupdf-cmake,lolo32/mupdf-mirror,seagullua/MuPDF,hjiayz/forkmupdf,lamemate/mupdf,poor-grad-student/mupdf,sebras/mupdf,xiangxw/mupdf,ylixir/mupdf,ccxvii/mupdf,wild0/opened_mupdf,geetakaur/NewApps,asbloomf/mupdf,xiangxw/mupdf