Guest User

Untitled

a guest
Jun 21st, 2018
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.54 KB | None | 0 0
  1. Index: gd.c
  2. ===================================================================
  3. RCS file: /repository/php-src/ext/gd/gd.c,v
  4. retrieving revision 1.417
  5. diff -u -r1.417 gd.c
  6. --- gd.c 29 May 2009 00:18:53 -0000 1.417
  7. +++ gd.c 19 Jun 2009 00:43:18 -0000
  8. @@ -1848,7 +1848,11 @@
  9. RETURN_FALSE;
  10. }
  11.  
  12. - hdc = GetDC(0);
  13. + hdc = GetDC(0);
  14. +
  15. + if (!hdc) {
  16. + goto clean;
  17. + }
  18.  
  19. if (client_area) {
  20. GetClientRect(window, &rc);
  21. @@ -1860,24 +1864,27 @@
  22. Height = rc.bottom - rc.top;
  23. }
  24.  
  25. - Width = (Width/4)*4;
  26. -
  27. + Width = (Width/4)*4;
  28. memDC = CreateCompatibleDC(hdc);
  29. memBM = CreateCompatibleBitmap(hdc, Width, Height);
  30. - hOld = (HBITMAP) SelectObject (memDC, memBM);
  31.  
  32. + if (!memDC || !memBM) {
  33. + goto clean;
  34. + }
  35. +
  36. + hOld = (HBITMAP) SelectObject (memDC, memBM);
  37. + handle = LoadLibrary("User32.dll");
  38.  
  39. - handle = LoadLibrary("User32.dll");
  40. if ( handle == 0 ) {
  41. goto clean;
  42. }
  43. +
  44. pPrintWindow = (tPrintWindow) GetProcAddress(handle, "PrintWindow");
  45.  
  46. if ( pPrintWindow ) {
  47. pPrintWindow(window, memDC, (UINT) client_area);
  48. } else {
  49. php_error_docref(NULL TSRMLS_CC, E_WARNING, "Windows API too old");
  50. - RETURN_FALSE;
  51. goto clean;
  52. }
  53.  
  54. @@ -1895,10 +1902,21 @@
  55. }
  56.  
  57. clean:
  58. - SelectObject(memDC,hOld);
  59. - DeleteObject(memBM);
  60. - DeleteDC(memDC);
  61. - ReleaseDC( 0, hdc );
  62. + if (memDC) {
  63. + if (hOld) {
  64. + SelectObject(memDC, hOld);
  65. + }
  66. +
  67. + DeleteDC(memDC);
  68. + }
  69. +
  70. + if (memBM) {
  71. + DeleteObject(memBM);
  72. + }
  73. +
  74. + if (hdc) {
  75. + ReleaseDC( 0, hdc );
  76. + }
  77.  
  78. if (!im) {
  79. RETURN_FALSE;
Add Comment
Please, Sign In to add comment