int0x76

iOS 6: Malformed CFF Vulnerability

Mar 31st, 2013
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.85 KB | None | 0 0
  1. diff -u -r freetype-2.4.1/src/cff/cffgload.c freetype-2.4.1_patched/src/cff/cffgload.c
  2. --- freetype-2.4.1/src/cff/cffgload.c   2010-07-15 09:26:45.000000000 -0700
  3. @@ -204,7 +204,7 @@
  4.     2, /* hsbw */
  5.     0,
  6.     0,
  7. -    0,
  8. +    1,
  9.     5, /* seac */
  10.     4, /* sbw */
  11.     2  /* setcurrentpoint */
  12. @@ -2041,6 +2041,9 @@
  13.             if ( Rand >= 0x8000L )
  14.               Rand++;
  15.  
  16. +            if ( args - stack >= CFF_MAX_OPERANDS )
  17. +                goto Stack_Overflow;
  18. +            
  19.             args[0] = Rand;
  20.             seed    = FT_MulFix( seed, 0x10000L - seed );
  21.             if ( seed == 0 )
  22. @@ -2166,6 +2169,9 @@
  23.         case cff_op_dup:
  24.           FT_TRACE4(( " dup\n" ));
  25.  
  26. +          if ( args + 1 - stack >= CFF_MAX_OPERANDS )
  27. +            goto Stack_Overflow;
  28. +                
  29.           args[1] = args[0];
  30.           args += 2;
  31.           break;
Advertisement
Add Comment
Please, Sign In to add comment