using programmer-written compiler extensions to catch security

17

Upload: lyquynh

Post on 03-Jan-2017

234 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Using Programmer-Written Compiler Extensions to Catch Security

������������ ������������������ ��������� �"!# $��%&�('(�)�+*-,.��� �����( ����/�� 0!#�1��2435 �)2)6����7�98;:< $'=�)�

>&?A@CBEDGFIHAJLKNMPOEKQ@IR-S&KUT.DGVQ@XWY@IZ9[\?]JG^_ V9`ba�c�OL?AJed�f�D�OL?A`bDEg)KQhiV9JLKNOGV9J�f

d�OjKQ@�MkV9JGRClE@Imon9?AJGDGmoO�fd�OjKQ@�MkV9JGRqp _ BsrNtvu9wvx�pIlzy{d4y|Bzy

}e~����(�j�����

�9�U��� ���7���(���������I�����j�X���L�7�P�(�����������(� �4���������\�o�.���Q��� �L������7�j�1���Q¡Y�(���(¢£���¤�����=�������7�)�¤���j��¥��o���|�j�P�1��¢£�|�=�q�7¢��7�.�j�§¦\�¤�N��P��¨]�(�7�v©7���j�#¢£������¢U�7�P�7¡ �(�j¢£���7�=�q�$¢U����ª7�)�=�����¤���|«G��¡$ª7�o©=�����¢U�(�]¬��j�9¡­¦P¡����Q�j�I¡��(���\©=�=���(�Q�7� ¢U�(�=������¢G�A�Q� �o�7¡®�����¤���P�=�7�(¯k¬°��±��¢£���7���Q�����A���U²)�Q����¨����j�$���=�7�³�����¤���³���L���P�=�$�������7�(� �4���´��P�(�����o�j���µ�¶�����I�����)�·�¤�U¸A��¡��¤���P�Y�¶���1�7�j���Q�¤�|�(� ���Q¡$�������7¸�¶���(�¤�1�7��¡A��©=�j�¹�=�����j�7�(¯.º&�Y¡��(���j���������j�P�1�¶���Y���A�Q���G���7��» ��\¼��7�=���¤¥L�(�Q�=�7��ª=�e¢U�7�¤�U¨E�¤�4�P���i�Q¡³�j¥j�=�$½�¾�¾e�(�7�=¢£���¤���E�(��������7�$�¤�À¿��¤��¢�´z�j�Q¡ÂÁ����(�UîÄUÅ�²)��¥L�(�.Æ�¾z�k©����U�o�7�Ç���j¥j��|�7¡³�P��¸A�(���Q�(�����j�P�7���=�=¯�È �É¢£��¢U��¢��j�]©=�7�j��¢£�����k©��j¢£�����9��Q�����A���Â���$�¶���.¢U�=�e�k©����=�¶���G¡L�����Ç�j¢£�P�j���j���o�����¤� �z¡A�=�P�7�=������(�Ç�i���$�������7�G¡������(�\�o�����Y�¶���j�4������¢£�|¡Eª7���������7¸A��¡A¯

Ê Ë ������ .̧6�2µ���= ��

ÍUÎGÏ=Ð�Ñ�ÎzÏ(ÒUÓ�ÎÇÔ�ÐNÕkÖ³Ò�×QÎ(ØÙÑ�Ð�Ú|ÎGÕeÕ�Ð�Ï7Û-Ü�ÕÞÝ�Õ�Ü�ß�à|Ö�à{á(ÎzÐ�ߣâÖ�Ñ�Ð�ÕãÖ�ÎGÓäà|ß�å�УÖz×QÎ=æ¶ÒAÑ�ÎÂÐ�Õ�à{ß�ç±à|Ö�è éêÝ�Ï7Û�ÎGÏ7ë±åNÎ�Ñ�Ô�à�Õ�Õ�à{Ò�ß�Õ×QÎ=æ¶Ò�Ñ�Î�Ó£Ò�à{ß�ç�Ò�åQÎ(Ñ7ÜjÖ�à|ÒAߧì�è éíÝ�Ó£Ò³ß�Ò�ÖYÑ�Î(Ú{Î�ÜAÕãÎ$ÕãÎ�ß�Õãà|Ö�à{î�ÎÓ�Ü�Ö�ÜÞÖ�ÒÙÐ�ß�Ü�УÖ�Û�ÒAÑ�à{á(ÎGÓ±Ð�Õ�Î(Ñ7Õ�ï éñð�Ú|Ú�Ï(Ò£Ó£ÎÉÔ�Ð�ÕãÖ&Ò�×QÎ(ØÖ�Û�Î�Õ�ήÑ�Ð�Ú{Î�ÕiÜ�ß�Ó�ÜYÕ�à|ß�ç�Ú{ήî]à{Ò�Ú�ÜjÖ�à|ÒAß$Ï�Ü�ß�Ï=ÒAÔ�å�Ñ�ÒAÔ�à{Õ�εÖ�Û�Îà{ßAÖ�Î(çAÑ�à|ÖkاÒ�æµÖ�Û�Î�Î(ß]Ö�à{Ñ�Î�Õ�Ø£ÕkÖ�Î(Ô�ïeò)ß�æ¶Ò�Ñ�Ö�Ð�ß�Ü�Ö�Î�Ú|ØAè�Ô�Ü�ßUØÑ�Ð�Ú|ÎGÕ®Ü�Ñ�ιåNÒUÒ�Ñ�Ú{Ø�Ð�ß�Ó£Î�Ñ�ÕãÖ�ÒUÒ£Ó�Ü�ß�ÓEÎ(Ñ�Ñ�Ü�Ö�à�Ï(Ü�Ú|Ú{Ø�Ò�×QÎ(ØAÎ�Óvï

ó Û�à�Õ)å�Ü�åNÎ�Ñ Õ�Û�Òjô)Õ)Û�ÒjôCÖ�ÒEÏ(Ò�Ô�×NÜjÖ)Ö�Û�Î�Õ�Î�å�Ñ�Ò�×�Ú{Î(Ô�Õ×UØ$Ü�УÖ�ÒAÔ�ÜjÖ�à�Ï(Ü�Ú|Ú{Ø�Ï7Û�Î�Ï7ëUà{ß�ç�ÕãÎGÏ=Ð�Ñ�à|ÖkØ�Ñ�Ð�Ú{Î�Õ�à{ßeÜYçAÎ(ß�Î�Ñ�Ü�Ú\èÚ{à|çAÛAÖkôµÎ(à{ç�Û]ÖIÔ�Ü�ß�ß�Î�ÑIÐ�Õãà{ß�çYÕ�ØUÕãÖ�Î�Ô$â�Õ�åNÎGÏ=à|õNÏ�èAÕkÖ7ÜjÖ�à�ÏqÜ�ß�Ü�Ú·âØ£Õãà�Õ�ïÂözγÛ�ÜLî�ÎEÐ�Õ�Î�Ó­ÒAÐ�Ñ�Ü�å�å�Ñ�ÒAÜAÏ7Û÷è ���(�P���7�j���Q�¤�|���\�o���øoùÀúqû è£à{ßeå�Ñ�à|ÒAÑ4ôµÒ�Ñ�ë$Ö�Ò�õ�ß�ÓeÛ]Ð�ß�Ó£Ñ�Î�Ó�ÕµÒ�æ�Î(Ñ�Ñ�ÒAÑ�Õià|ßEÒ�å£âÎ(Ñ7ÜjÖ�à|ß�ç)ÕãØ£ÕãÖ�Î(Ô ø�ü Í û Ï=ңӣΠý þ£èLÿ���ï ó Û�εÏ=Ð�Ñ�Ñ�Î(ß]Ö÷å�Ü�åQÎ(Ñ�æ¶Ò�âÏ=ÐNÕãÎGÕqÒ�ß³Ð�Õãà{ß�ç ùzú Ö�Ò.Ï7Û�ÎGÏ7ë.ÕãÎGÏ=Ð�Ñ�à·ÖkØ�å�Ñ�ÒAåNÎ�ÑãÖ�à|ÎGÕ(ï ü Ð�ÑÑ�Î�Õ�Ð�Ú·Ö7Õ�ÕãÛ�Òjô­à·ÖiÏ�ÜjÖ7Ï7Û�Î�ÕIÕ�Î�Ï=Ð�Ñ�à|ÖkØ�Î(Ñ�Ñ�Ò�Ñ7Õ�ÜAÕ�Î��QÎGÏ�Ö�à|îAÎ(Ú{Ø�Ü�Õà|Ö�Ó£à{Ó³ß�ÒAߣâPÕãÎGÏ=Ð�Ñ�à·ÖkØ�ÒAß�Î�Õ�ï

������ ������������������������������� ���!"��#$�%���� '&)(�*�+�,�-.+/����#� ������0 1�*�+�2�3�4�562�785:9;5<+ 2�=�=>�&�(�?@+ AB�C��#) ������0 EDF+�?.G0562�7GC=�2>H��#�!�&)(I�J ����#) �KL����MN ����O?� ���#KP����!ID��0 <�Q����R���# J ,�����C�������I9S�C#) ��C�CT

ùzú õNß�Ó�Õ�Ñ�Ð�Ú{ÎeÎ�Ñ�Ñ�Ò�Ñ7ÕY×UØÉÎ)U£å�Ú{Ò�à|Ö�à{ß�ç&Ö�Û�ÎeæoÜAÏ�Ö�Ö�Û�Ü�ÖÔ�Ü�ß]ØÙÒ�æ�Ö�Û�ÎÉÜ�×NÕkÖ�Ñ�ÜAÏ�ÖEå�Ñ�ÒAåNÎ�ÑãÖ�à|ÎGÕEÑ�Î(Ú{Î(îjÜ�ßAÖEÖ�ÒÙÜ­Ñ�Ð�Ú{ÎÔ�Ü�å¹Ï(Ú|ÎGÜ�Ñ�Ú|Ø�Ö�Ò�Ï(Ò�ß�Ï(Ñ�Î(Ö�Î�Ï=Ò£Ó£Î4Ü�Ï�Ö�à|ÒAß�Õ�ý þ%��ï ó ÛUÐ�Õ�è�ôµÎ�Ï(Ü�ßÏ7Û�Î�Ï7ë�Ö�Û�Î�Õ�Î.Ü�Ï�Ö�à|ÒAß�Õ1æ¶Ò�ÑYÎ�Ñ�Ñ�Ò�Ñ7Õ Ð�Õãà{ß�ç&Ü�Ï=ÒAÔ$å�à|Ú{Î(ÑGïWV�ÒAÑÎ�U�Ü�Ô�å�Ú{Î�è9Ö�Ò&Ï�ÜjÖ�Ï7ÛzîUà|ÒAÚ{Ü�Ö�à{Ò�ß�Õ1Ò�æ4Ö�Û�Î�Ñ�Ð�Ú{ÎzÝ�Ó£ÒEß�Ò�ÖYÐ�Õ�ÎÜ�ßzÐ�ß�Ï7Û�Î�Ï7ëAÎ�Óvè�Ð�ß]Ö�Ñ�Ð�ÕkÖ�Î�ÓzîjÜ�Ú{Ð�Î.Ü�ÕYÜ�ßÀÜ�Ñ�Ñ7ÜLØ�à|ß�Ó�Î)U�é�ÜÏ(Ò�Ô�å�à{Ú|Î�Ñ�Ï(Ü�ß�æ¶Ò�Ú{Ú|Òjôbà|ß]Ö�Î�ç�Î�Ñ�Õ�Ñ�Î�ÜAÓ�æ¶Ñ�ÒAÔ Ð�ß]Ö�Ñ�Ð�ÕãÖkô4ÒAÑãÖ�ÛUØÕ�Ò�Ð�Ñ�Ï(Î�ÕYÜ�ßNÓYXQÜ�ç&ô®Û�Î�ßÉÖ�Û�Î�ØzÜ�Ñ�Î�ß�Ò�Ö�×NÒAÐ�ß�Ó�Õ�Ï7Û�Î�Ï7ëAÎ�Ó×QÎ=æ¶ÒAÑ�ι×QÎ(à{ß�ç�Ð�Õ�Î�Ó³Ü�Õ®Ü�ßEà{ß�Ó£Î�U9ï

ü æ�Ï(Ò�Ð�Ñ7ÕãÎAè�Ö�Ò�Ï7Û�ÎGÏ7ë$ÜYÑ�Ð�Ú{Î�èAÖ�Û�Î1Ï=ÒAÔ$å�à|Ú{Î(Ñ4Ô�Ð�ÕãÖiõ�Ñ7ÕãÖëUß�ÒjôÀà|Ö�ï�Í£à|ß�Ï(Î�Ô�Ü�ßUعÕãÎGÏ=Ð�Ñ�à·ÖkØ Ñ�Ð�Ú|ÎGÕ÷Ü�Ñ�Î�Ó£Ò�Ô�Ü�à|ßYÒAÑ÷Î(îAÎ(ßÕ�Ø£ÕkÖ�Î(Ô Õ�åNÎGÏ=à|õNÏ�è£Û�Ü�Ñ�Óeô®à|Ñ�à{ß�ç�Ü�õZU£Î�ÓEÕãÎ(Öµà{ß]Ö�Ò�Ö�Û�ÎYÏ=ÒAÔ$âå�à|Ú{Î(Ñ4à{Õ4à|ß�Î)�9Î�Ï�Ö�à|îAÎ�ï ùzú Ü�ÖãÖ�ÜAÏ7ë£Õ�Ö�Û�à{Õµå�Ñ�Ò�×�Ú{Î(Ô#×UØ�Ô�Ü�ë]âà{ß�ç�à·Ö®Î�ÜAÕãØ$æ¶ÒAѵà{Ô�å�Ú{Î(Ô�Î(ß]Ö�Î�Ñ�Õ4Ö�Ò$ÜAÓ�Ó.Ñ�Ð�Ú{Î�ÕiÖ�Ò�Ö�Û�ÎYÏ=ÒAÔ$âå�à|Ú{Î(Ñ®à{ß�Ö�Û�ιæ¶ÒAÑ�Ô/Ò�æIÛ�à{ç�Û£â�Ú|Î�î�Î�Ú\è�Õ�Ø£ÕkÖ�Î(Ô$âPÕãåQÎ�Ï(à·õNϹÏ7Û�ÎGÏ7ë]âÎ�Ñ�Õ�ï ó Û�ÎGÕãÎYÎ�UUÖ�Î(ßNÕãà{Ò�ß�Õ)Î(ß�Ï(ÒUÓ�ιÖ�Û�Î�Ñ�Ð�Ú{ιÖ�Ò�×QÎ�Ï7Û�ÎGÏ7ë�Î�Ó÷è×�УÖ.Ú|ÎGÜLî�γÖ�Û�Χ×�Ð�Ú{ëÞÒ�æ Ö�Û�ΧÜ�ß�Ü�Ú|Ø£Õ�à{Õ$Ö�ÒÉÖ�Û�ÎzÏ=Ò�Ô�å�à{Ú{Î(ÑGï[ ÎGÏ(Ü�ÐNÕãεÏ7Û�Î�Ï7ëAÎ(Ñ7Õ�Ü�Ñ�εô®Ñ�à|ÖãÖ�Î(ß�×]Ø�ÕãØ£ÕãÖ�Î(Ô à{Ô�å�Ú{Î(Ô�Î(ß]Ö�Î�Ñ�ÕÖ�Û�Î(Ø.Ï�Ü�ßEÑ�ÎGÜ�Ó£à{Ú|Ø$Ö7Ü�ë�Î à|ß]Ö�Ò$ÜAÏ(Ï=ÒAÐ�ß]ÖiÖ�Û�ÎYÜ�Ó.Û�ÒUÏ ø Õ�Ò�Ô�Î(âÖ�à|Ô�ÎGÕq×�à|áGÜ�Ñ�Ñ�Î û ÕãÎ�Ô�Ü�ß]Ö�à�Ï(ÕqÒ�æIÜ�ÕãØ£ÕãÖ�Î(Ô�ïö Û�Î�ß Ü�å�å�Ú{à�Ï(Ü�×�Ú|ÎAèiÖ�Û�ΧÜ�å�å�Ñ�Ò]Ü�Ï7Û­Û�ÜAÕ�ÕãÎ�î�Î�Ñ�Ü�Úµß�à{Ï(Î

æ¶ÎGÜjÖ�Ð�Ñ�ÎGÕ(ï\V�à|Ñ7ÕkÖGè�à·Ö�å�Ñ�Ò�å�Ü�çAÜ�Ö�Î�ÕYÖ�Û�γëUß�Òjô®Ú|ÎGÓ£ç�ÎeÒ�æ)Ò�ß�Îå�Ñ�ÒAç�Ñ7Ü�Ô�Ô�Î(Ñ�Ö�Ò�Ô�Ü�ßUØ�ï'])ÜjÖ�Û�Î(ÑqÖ�Û�Ü�ß³Ñ�Î@^]Ð�à{Ñ�à{ß�ç�Ü�Ú|Úvå�Ñ�Ò�âçAÑ�Ü�Ô�Ô$Î�Ñ�Õ$Ö�ÒÂëUß�Òjô Ü�ß�ÓÙÒ�×QÎ(ØÙÜ�Ú{Ú)Ò�æ1Ö�Û�ΧÑ�Ð�Ú{Î�ÕeÜ�Ú|Ú�Ò�æÖ�Û�Î$Ö�à{Ô�Î�è ùzú Ü�Ú{Ú|Òjô)Õ1ܳÕãà{ß�ç�Ú{Î�å�Ñ�Ò�ç�Ñ7Ü�Ô�Ô�Î(Ñ�Ö�Ò�Ð�ß�Ó�Î(Ñ�âÕãÖ�Ü�ß�Ó§ÜeÑ�Ð�Ú{Î�ÒAß�Ï=ÎAèQô®Ñ�à|Ö�Î�Ü�ߧÎ)UUÖ�Î(ß�Õ�à|ÒAß&Ö�ÛNÜjÖ1Ï7Û�Î�Ï7ë£Õ�à|Ö�èÜ�ß�Ó�Ö�Û�Î(ߧÛNÜLî�ÎYÖ�Û�à{Õ1Î�U]Ö�Î(ß�Õ�à{Ò�ßÇÜ�УÖ�ÒAÔ�Ü�Ö�à�Ï(Ü�Ú|Ú{ØEà{Ô�åNÒ]ÕãÎGÓÒAßíÜ�Ú|Ú Ï=Ò£Ó£Î�ï ó Û�à{ÕEÜ�×�à{Ú{à·ÖkØ­à�Õ�à{Ô�åNÒAÑãÖ7Ü�ß]Ö�æ¶Ò�ÑeÕ�Î�Ï(Ð�Ñ�à·ÖkØAèÕ�à{ß�Ï=Î.Ô�Ü�ß]ØÀÕãÎGÏ=Ð�Ñ�à|ÖkØÇÑ�Ð�Ú|ÎGÕ�Ü�Ñ�Î.Õ�Ð�×£Ö�Ú|ÎAï_V�Ò�Ñ$ÕãÎ�î�Î�Ñ�Ü�Ú�Ò�æÖ�Û�ιÎ(Ñ�Ñ�ÒAÑ�Õiô4Î æ¶Ò�Ð�ß�Óvè�Î�î�Î(ß³ÕãÎGÜ�Õ�Ò�ß�ÎGÓ�à{Ô$å�Ú|Î�Ô$Î�ß]Ö�Î(Ñ7Õ®Ó£à�Óß�Ò�Ö¹Ð�ß�Ó£Î�Ñ�ÕãÖ�Ü�ß�Ó&Ö�Û�Î�Ñ�Î(Ú{Î(îjÜ�ßAÖ¹Ñ�Ð�Ú|ÎAè9Ö�ÒEÖ�Û�Î$Î)UUÖ�Î(ß]Ö¹Ö�Û�Ü�ÖÖ�Û�Î(Ø�à|ß�à·Ö�à{Ü�Ú|Ú{Ø$Ü�Ñ�çAÐ�Î�Ó�Ü�çAÜ�à{ß�ÕãÖ�Ö�Û�Î�îLÜ�Ú|à�Ó£à|ÖkØ�Ò�æQÖ�Û�Î)Î�Ñ�Ñ�Ò�Ñ7ÕôµÎYÑ�Î(åQÒ�Ñ�Ö�Î�Ó ø Ð�ß]Ö�à{Ú�Ò�Ö�Û�Î�Ñ�à{Ô$å�Ú|Î�Ô$Î�ß]Ö�Î(Ñ7Õ)Î�U£å�Ú{Ü�à|ß�Î�Ó³Ö�Û�ÎÜ�ÖãÖ7Ü�Ï7ë£Õ û ïÍUÎGÏ=ÒAß�Óvè)ÕãÖ�ÜjÖ�à{ÏÇÜ�ß�Ü�Ú|Ø£Õ�à{Õ�Ñ�Î�ÜAÓ£à{Ú|Øbõ�ß�Ó�ÕEÓ£àP`�Ï(Ð�Ú|Öãâ�Ö�Ò�â

ÒA×�Õ�Î(Ñ�î�ιÎ(Ñ�Ñ�ÒAÑ�Õ�ï ó Û�à�Õ Ü�×�à|Ú{à|ÖkØEà�Õ�à{Ô�åNÒAÑãÖ7Ü�ß]Ö Õ�à|ßNÏ=Î�Ô�Ü�ß]ØÕ�Î�Ï(Ð�Ñ�à·ÖkØbÎ(Ñ�Ñ�ÒAÑ�Õ�Ü�Ñ�ΧÕ�à|Ú{Î(ß]Öa§Ö�Û�Î(Ø Ï=ÒAÔ$å�Ñ�ÒAÔ$à�Õ�Î�Õ�Ø£ÕkÖ�Î(ÔÕ�Î�Ï(Ð�Ñ�à·ÖkØÇæ¶Ò�Ñ�Ï(Î(Ñ�Ö�Ü�à|ß­à{ß�å�Ð�Ö�îjÜ�Ú{Ð�Î�Õ�×�УÖ�Ô�ÜLØzß�Ò�Ö�Ï=Ñ7Ü�Õ�ÛÖ�Û�ÎiÔ�ÜAÏ7Û�à|ß�Î�ï�bPß�Ï=Ò�ß]Ö�Ñ�ÜAÕkÖGèGÕãÖ�Ü�Ö�à�ÏiÜ�ßNÜ�Ú{ØUÕ�à�Õ�Ï(Ü�ß�Õ�ÜLØ1ô®Û�Ü�ÖÚ{à{ß�ÎYÜ�ß�Ó³ô®Û�Ü�ÖµõNÚ|ÎYÛ�ÜAÕ®Ü�ß³Î(Ñ�Ñ�ÒAÑ®Ü�ß�Ó³ô®ÛUØ�ïó Û�à{Ñ7Óvè�ÕãÖ�ÜjÖ�à{ϹÜ�ß�Ü�Ú{Ø£Õãà�ÕqÏ(ÜjÖ7Ï7Û�Î�ÕqÎ�Ñ�Ñ�Ò�Ñ7Õµô®à·Ö�Û�Ò�Ð�Ö)Ñ�Ð�ß�â

ß�à|ß�çÉÏ=Ò£Ó£ÎAï ó Û�à{Õ$æ¶ÎGÜjÖ�Ð�Ñ�Î�Û�Î�Ú|å�Õ$Ö�ÒÇõNß�ÓíÎ(Ñ�Ñ�ÒAÑ�Õ�à|ßÙÒ�å�â

Page 2: Using Programmer-Written Compiler Extensions to Catch Security

Î(Ñ7ÜjÖ�à|ß�çíÕ�Ø£ÕkÖ�Î(Ô�Õ(è1ô®Û�à�Ï7ÛCÛNÜLî�ÎzÖ�ÒUÒÙÔ�Ü�ßUØ-Ï=Ò£Ó£ÎÉå�Ü�Ö�Û�Õæ¶Ò�Ñ Ö�Û�Ò�Ñ�Ò�Ð�çAÛ&Ö�ÎGÕkÖ�à|ß�çNï¹özÒAÑ�Õ�Î�è9Ô�ÒAÕãÖ ÒAåNÎ�Ñ�Ü�Ö�à{ß�çEÕ�Ø£ÕkÖ�Î(ÔÏ=Ò£Ó£Î&Ï�Ü�ß�ß�Ò�Ö�×NÎ&Î�UUÎGÏ=УÖ�Î�ÓQa&Ô�Ò]ÕkÖ�Ò�æ¹à|Ö�Ñ�Î�Õ�à�Ó£Î�Õ�à{ß Ó£Î=âîUà{Ï(Î Ó£Ñ�à{î�Î(Ñ7Õ�èAÜ�ßNÓ.Ü�çAà|îAÎ(ß.Õ�à·Ö�Î)ÖkØUå�à�Ï(Ü�Ú{Ú{Ø�Ö�Î(ß�Õ4Ò�æ�Ó�Î(îUà{Ï(Î�ÕÑ7ÜjÖ�Û�Î(Ñ)Ö�Û�Ü�ߧÖ�Û�Î ����� â ������� Õµß�Î�Î�Ó£ÎGÓ�Ö�ÒeÖ�Î�ÕãÖ1Ü�Ú|ÚIÓ£Ñ�à|îAÎ(Ñ7Õ(ïù Ü�ß]Ø�Ò�æ�Ö�Û�Î�Ó£Ñ�à{î�Î(Ñ1Î(Ñ�Ñ�Ò�Ñ7Õ®ô4Î�æ¶Ò�Ð�ß�Ó§ôµÎ(Ñ�Î�æ¶ÒAÑ1Ó�Î(îUà{Ï(Î�ÕôµÎ1ÛNÜLî�ιß�Î(îAÎ(ÑqÛ�ÎGÜ�Ñ7ÓeÒ�ækè�Ô�Ð�Ï7Û³Ú{Î�Õ�ÕqÛ�ÜLî�ÎYÜ�Ï�Ï=ÎGÕ�Õ4Ö�ÒNï

V�à|ßNÜ�Ú{Ú|ØAèGÎ�UUÖ�Î(ßNÕãà{Ò�ß�Õ�Ü�Ñ�Î�Ú{à|çAÛ]Ökô4Î�à|çAÛAÖGï ü ß�Ï(Î�Ö�Û�ÎiõZU£ÎGÓÏ=Ò]ÕkÖzÒ�æ�ô®Ñ�à|Ö�à{ß�ç Ö�Û�έÎ�U]Ö�Î(ß�Õ�à{Ò�ß à�Õ§å�Ü�à{Óvè�Ö�Û�Î�Ñ�έà�Õ§Ú{à|ÖãâÖ�Ú{Î�à{ß�Ï=Ñ�Î(Ô�Î(ß]Ö7Ü�Ú�Ô�Ü�ßUÐ�Ü�Ú�Ï=Ò]ÕkÖYÖ�Ò&Ð�Õãà{ß�ç&à|Ö�Ü�Õ�Ï(Ò£Ó£Î.Õãà{á(Îç�Ñ�Òjô)Õ ø Ô�Ü�à{ß�Ú{ØÇÖ�Û�Î.Ï=Ò]ÕkÖ�Ò�æ®à|ß�Õ�åQÎ�Ï�Ö�à|ß�ç&Î(Ñ�Ñ�ÒAÑ�Õ û ï ü Ö�Û�Î(ÑÜ�å�å�Ñ�Ò]Ü�Ï7Û�ÎGÕ(èIÕ�Ð�Ï7ÛÞÜ�Õ�æ¶Ò�Ñ�Ô�Ü�Úµî�Î�Ñ�à|õNÏ(Ü�Ö�à{Ò�ß­Ü�ß�ÓÂÖ�Î�ÕãÖ�à{ß�ç�èÑ�Î@^]Ð�à{Ñ�ιôµÒ�Ñ�ë�å�Ñ�ÒAåNÒAÑãÖ�à|ÒAß�Ü�ÚQÖ�Ò�Ö�Û�Î�Õ�à|á�Î1Ò�æIÏ(Ò£Ó£Î�ïöÀÎYà|Ú{Ú|ÐNÕkÖ�Ñ�Ü�Ö�ιÛ�Òjô±Ö�Ò�Ð�ÕãÎYÔ�Î(Ö�Ü�Ï(Ò�Ô�å�à{Ú{Ü�Ö�à{Ò�ßEÖ�Ò$õ�ß�Ó

Õ�Î�Ï=Ð�Ñ�à|ÖkØÂ×�Ð�ç]Õ�×]ØÞÎ)U�Ü�Ô�à{ß�à|ß�çÀÜÉÕ�à|ß�çAÚ|Î�Ï7Û�ÎGÏ7ë�Î(Ñ�Ó£Î�Î(å�Ú{ØÜ�ßNÓXÕ�ë�Î(Ö�Ï7Û�à{ß�çbÖkô4ÒÙÒ�Ö�Û�Î�Ñ�Õ�ï ü Ð�Ñ&Ô�Ü�à{ßCæ¶Ò£Ï(Ð�Õ&à�Õ�Ò�Ð�ÑÑ7Ü�ß�çAÎ�Ï7Û�Î�Ï7ëAÎ(ÑGè�ô®Û�à�Ï7Û&ôµÜ�Ñ�ßNÕ)ô®Û�Î�ߧà|ß]Ö�Î(ç�Î�Ñ�Õ)Ñ�ÎGÜ�Ó³æ¶Ñ�Ò�ÔÐ�ß]Ö�Ñ�Ð�ÕãÖ�ÎGÓ.ÕãÒAÐ�Ñ7Ï=Î�Õ ø Õ�Ð�Ï7ÛeÜ�Õiß�Î=ÖkôµÒ�Ñ�ë$å�Ü�Ï7ëAÎ=Ö�Õ û Ü�Ñ�Î)ÐNÕãÎGÓà{ßÇÓ�Ü�ß�ç�Î(Ñ�Ò�ÐNÕqôµÜLØ£Õ®ô®à|Ö�Û�ÒAУÖ)õ�Ñ7ÕãÖ�×NÎ�à|ß�çEÏ7Û�ÎGÏ7ë�Î�Ó÷ï ó Û�à{ÕÏ7Û�ÎGÏ7ë�Î(Ñ�×NÒ�Ö�ÛÞÓ£Î�Ô�Ò�ß�ÕãÖ�Ñ7ÜjÖ�Î�ÕYÖ�Û�ÎEÜ�å�å�Ñ�ÒAÜAÏ7Û�� Õ�Î)�9Î�Ï�Ö�à|îAÎ=âß�ÎGÕ�Õ�Ü�ß�Ó�Õ�Î(Ñ�î�ÎGÕ÷Ü�Õ�Ü�Ï(ÜAÕãÎ�ÕãÖ�ÐNӣعà|Ú{Ú|ÐNÕkÖ�Ñ�Ü�Ö�à{ß�ç®Ö�Û�Îiç�Î�ß�Î(Ñ7Ü�Úà�Õ�Õ�Ð�Î�Õqà{ßUî�ÒAÚ|îAÎ�Ó.à{ß�×�Ð�à{Ú{Ó�à|ß�ç�ÐNÕãÎ(æ¶Ð�Ú�Ï7Û�ÎGÏ7ë�Î(Ñ7Õ�ï

ü Ð�Ñ&ÖkôµÒ±Ò�Ö�Û�Î�ÑÇÏ7Û�Î�Ï7ëAÎ(Ñ7Õ§Õ�Û�Òjô Ö�Û�ÎÞçAÎ(ß�Î�Ñ�Ü�Ú|à|ÖkØ-Ò�æÖ�Û�ÎÇÜ�å�å�Ñ�Ò]Ü�Ï7Û÷ï ó Û�Î&õ�Ñ7ÕãÖ.ôµÜ�Ñ�ß�Õ.ô®Û�Î(ß åQÒ�à{ß]Ö�Î(Ñ7Õ�Ñ�Î�ÜAÓæ¶Ñ�Ò�Ô Ð�ß]Ö�Ñ�Ð�ÕãÖ�Î�ÓEÕãÒAÐ�Ñ7Ï=Î�Õ4Ü�Ñ�Î�Ó£Î�Ñ�Î(æ¶Î(Ñ�Î(ß�Ï(Î�Óvï ó Û�Î1ÕãÎGÏ=Ò�ßNÓôqÜ�Ñ�ß�Õ�ô®Û�Î(ß$ß�Ò�ß�â�Õ�Î�Ï(Ð�Ñ�à|ÖkعÎ(Ñ�Ñ�ÒAÑ�Õ�à{ß�Ö�Û�Îqë�Î(Ñ�ß�Î�ÚUÏ(Ò�Ð�Ú�Ó�×NÎà{ß�Ó£Ð�Ï(Î�Ó�×UØ�Ö�Û�Î)Ð�Õ�Î(ÑGèjÖ�Û]ÐNÕ�Ú{Î=ÖãÖ�à|ß�ç�ܹÔ�Ü�Ú{à{Ï(à|ÒAÐ�Õ�ÜjÖ�Ö�ÜAÏ7ë�Î(ÑÏ=Ñ7Ü�Õ�Û.Ö�Û�Î�Õ�ØUÕãÖ�Î�Ô�ïð±ëAÎ(Ø�Ñ�Î�Õ�Ð�Ú·ÖµÒ�æ÷Ö�Û�Î1å�Ü�åQÎ(ѵà{ÕµÕ�Û�Òjô®à|ß�ç�Û�ÒjôÙÖ�Ò�Ô�Ü�ë�Î

Ï7Û�ÎGÏ7ë�Î(Ñ7Õ³ÝkæoÜ�à|Ú�ÕãÖ�ÒAå�é³×]ØzÏ(ÜjÖ7Ï7Û�à{ß�ç�ô®Û�Î(ßÀÖ�Û�Î(ØÇÔ�à�Õ�ÕYÜAÏ�âÖ�à{Ò�ßNÕ4Ñ�Î(Ú{Î(îjÜ�ßAÖµÖ�Ò�Ö�Û�Î1Ñ�Ð�Ú{Î�Ö�Û�Î(Ø.Ï7Û�Î�Ï7ë9ïIözιӣÒ�ÕãÒ$Ð�Õ�à|ß�çª7�=�·�o�o©��j�9�j� �L����� ý ÿ���ï [ Î�Ú|à{Î=æµÜ�ß�Ü�Ú|Ø£Õ�à{Õ�à|ߣæ¶Î�Ñ�Õ å�Ñ�Ò�çAÑ�Ü�Ô$Ô�Î�Ñ×QÎ(Ú{à|Î(æoÕ³æ¶Ñ�ÒAÔ�ÕãÒAÐ�Ñ�Ï(ÎÀÏ(Ò£Ó£Î�ï öÀÎÉÐ�Õ�ÎÀà|Ö�Ö�Òbõ�ß�ÓCô®Û�Î(ßÜ�ßäÎ�U]Ö�Î(ß�Õ�à{Ò�ßXô®Ñ�à|Ö�Î�Ñ&Û�Ü�Õ&Ô�à�Õ�Õ�Î�ÓäÜÙÏ7Û�ÎGÏ7ëLÜ�×�Ú{ÎÉÜAÏ�Ö�à|ÒAß×UØYXQÜ�ç�çAà|ß�ç&ô®Û�Î(ßÞÏ(Ò£Ó£ÎeÜ�å�åNÎGÜ�Ñ7ÕYÖ�ÒÇ×NÎ�Ú|à{Î(îAÎEÜ�ß­ÜAÏ�Ö�à|ÒAßÕ�Û�Ò�Ð�Ú�Ó­×QÎ&Ï7Û�Î�Ï7ëAÎ�ÓvèiÎ(î�Î�ß­Ö�Û�Ò�Ð�çAÛ­Ö�Û�Î�Î)UUÖ�Î�ß�Õãà{Ò�ßíÓ£ÒUÎ�Õß�Ò�Ö�ï�V�Ò�Ñ�Î)U�Ü�Ô$å�Ú|ÎAèjà|ß�Ö�Û�ήÏ=ÒAß]Ö�Î)UUÖ�Ò�æ�Ö�Û�ÎqÑ�Ü�ß�ç�ÎiÏ7Û�Î�Ï7ë�Î�Ñ�èà|æµÏ=Ò£Ó£Î$Ñ�Î�Ü�Ó�Õ ÜeîLÜ�Ú|Ð�Î�æ¶Ñ�Ò�Ô+ܳÓ�Ü�ß�ç�Î(Ñ�Ò�ÐNÕ)Ú{ÒUÏ�ÜjÖ�à|ÒAßzÜ�ßNÓÖ�Û�Î(ß�Õ�Ü�ß�à|Ö�à{á(ÎGÕvà|Ö�èLÖ�Û�à{Õ�à|Ô�å�Ú{à|ÎGÕ÷Ö�Û�Î�å�Ñ�Ò�çAÑ�Ü�Ô�Ô$Î�Ñv×NÎ�Ú|à{Î(îAÎ�ÕÖ�Û�Î�îjÜ�Ú{Ð�Î�ô®à{Ú|Ú�×QÎ�Ð�Õ�Î�Ó1æ¶ÒAÑ�Õ�Ò�Ô�Î=Ö�Û�à|ß�ç)Ó�Ü�ß�çAÎ(Ñ�Ò�Ð�Õ�ïQb�æUÖ�Û�à�ÕîjÜ�Ú{Ð�ÎeÓ£ÒUÎGÕ�ß�Ò�Ö�Ñ�Î�Ü�Ï7ÛÂÜ&ëUß�Òjô®ß­Ó�Ü�ß�çAÎ(Ñ�Ò�Ð�ÕYÒAåNÎ�Ñ�Ü�Ö�à{Ò�ß÷èÖ�Û�à{Õià|Ô�å�Ú{à|ÎGÕ�Ö�Û�ÜjÖiôµÎ®Û�ÜLîAήÔ$à�Õ�ÕãÎGÓ�ÒAß�Î�ï ü Ö�Û�Î(ÑiÏ7Û�Î�Ï7ëUà|ß�çÜ�å�å�Ñ�Ò]Ü�Ï7Û�ÎGÕ�Ï�Ü�ß�Ü�Ú�ÕãÒ1Ð�Õ�ÎqÖ�Û�à�Õ�Ö�ÎGÏ7Û�ß�à ^]Ð�Î�è]Õãà{ß�Ï=εÖ�Û�Î(Ø$Ü�Ñ�ÎÜ�Ú{ÚvîUÐ�Ú{ß�Î(Ñ7Ü�×�Ú{Î1Ö�Ò�à{ß�Ï=ÒAÔ�å�Ú|Î(Ö�ιÒ�Ñ®ô®Ñ�Ò�ß�ç$Õ�åNÎGÏ=à|õNÏ(Ü�Ö�à{Ò�ß�Õ�ï

ü Ð�Ñ$Ô�ÒAÕãÖ�à{Ô�åNÒAÑãÖ7Ü�ß]Ö�Ñ�ÎGÕãÐ�Ú|Ö�à{Õ$Ö�Û�ÜjÖ ùzú Ï7Û�Î�Ï7ëAÎ(Ñ7ÕÜ�Ñ�Î.Î��QÎGÏ�Ö�à{î�ÎEÒ�ßÂÑ�Î�Ü�Ú4Ï=Ò£Ó£ÎAï ó Û�ÎEÑ�Ü�ß�ç�Î.Ï7Û�ÎGÏ7ë�Î�Ñ�Ü�Ú{Ò�ß�Îæ¶Ò�Ð�ß�Ó³ô4Î�Ú|ÚvÒjîAÎ(ÑqÒ�ß�ιÛUÐ�ß�Ó�Ñ�ÎGÓ³Õ�Î�Ï(Ð�Ñ�à·ÖkØ.Î�Ñ�Ñ�Ò�Ñ7Õ4à|ß��÷à{ßUÐ UÜ�ßNÓ ü åQÎ(ß [ Í Ï=Ò£Ó£ÎAè®Ü�Ú{Ô$Ò]ÕkÖ�Û�Ü�Ú·æYÒ�æ1ô®Û�à�Ï7ÛÙÛ�ÜLî�Î�Ñ�Î=âÕ�Ð�Ú·Ö�Î�Ó³à{ß³ëAÎ(Ñ�ß�Î(Ú9å�Ü�Ö�Ï7Û�ÎGÕq×�Ü�Õ�Î�ÓEÒ�ß�ÒAÐ�Ñ®Ñ�Î�åNÒAÑãÖ7Õ(ïð õNß�Ü�Ú¹å�Ñ7Ü�Ï=Ö�à�Ï(Ü�Ú1Ñ�Î�Õ�Ð�Ú·Ö³à{ÕeÖ�ÛNÜjÖ�ô®Ñ�à|Ö�à{ß�çÙÏ7Û�Î�Ï7ëAÎ(Ñ7Õ

Ñ�Î@^]Ð�à{Ñ�ÎGÕvÚ|à|ÖãÖ�Ú|ε×�ÜAÏ7ë]çAÑ�ÒAÐ�ß�Ó ëUß�Òjô®Ú|ÎGÓ£ç�ÎAï ó Û�Î4×�Ð�Ú{ë1Ò�æUÖ�Û�Îà{Ô$å�Ú|Î�Ô$Î�ß]Ö�ÜjÖ�à|ÒAß�ô4ÒAÑ�ë�æ¶ÒAÑ®Ö�Û�à�Õ®å�Ü�åNÎ�Ñ®ôµÜAÕ®Ó£Ò�ß�ÎY×]Ø.Ö�Û�Îõ�Ñ7ÕkÖ�Ü�УÖ�Û�Ò�Ñ)Ü�Õ®Ü�ßEÐ�ß�Ó£Î(Ñ�ç�Ñ7Ü�Ó�Ð�ÜjÖ�Î ô®à|Ö�Û&Ú{à·Ö�Ö�Ú{Î�Ï=ÒAÔ$å�à|Ú{Î(ÑÖ�Ñ7Ü�à{ß�à{ß�ç�Ü�ß�ÓEß�Ò�Ñ�Î�Ü�ÚQå�Ñ�à{Ò�Ñ®Î�UUåQÒAÕ�Ð�Ñ�Î�Ö�Ò ü ÍeÏ(Ò£Ó£Î�ï

� ��������������� ��� �������� !���"���#�"%$�� "�!���&('�)�+*�"�!�� &('�, ��- ��.�/0�����1324��-�5 6 ,�1��7-98(,�#�"�!���2;:�1��7�<8(!�=>����?@=A"��CB ! -�1@2)�CD .(E�E�E

� !�.�#���DF��G H�I�J K L@M� !�. N7"�!���&('C,�D7!�O 1��7�98�!�24"�!���&('P=Q1�� �98(!�EM"�!�� &('C��R�1��7�98(!@ST1��7�98�!�U���?�� ��$�"�.7��. ! N�H�V I�W G�,CJ X�J�YCG�Z�M� !�.�# ��D[� !�.@MV�à{ç�Ð�Ñ�Î � a§ÍUà{Ô�å�Ú|ÎÇÑ�Ü�ß�ç�γÎ(Ñ�Ñ�ÒAÑ$Ö�Û�Ü�ÖeÏ(Ü�ßÙÏ=ÒAÔ�å�Ñ�ÒAÔ�à{Õ�Îà{ß]Ö�Î�ç�Ñ�à·Ökر×UØXÏ=Ò�Ñ�Ñ�Ð�å£Ö�à{ß�çÙë�Î�Ñ�ß�Î(Ú�Ô�Î(Ô�ÒAÑ�ØAï ó Û�ÎÂîjÜ�Ñ�à|âÜ�×�Ú{Î]\(^P_�`�a�à{Õ4Ñ�ÎGÜ�Ó$æ¶Ñ�Ò�Ô#Ö�Û�Î Ð�Õ�Î(ÑqÜ�ßNÓ�Ö�Û�Î�ß.Ð�Õ�Î�ÓEÜ�ÕiÜ�ßÐ�ß�Ï7Û�Î�Ï7ëAÎ�ÓEÜ�Ñ�Ñ�ÜLØ�à{ß�Ó£Î)UEÖ�Ò�Ö�Û�Îcb�a�de�f g[\(^_�`�a�Ü�Ñ�Ñ7ÜLØ�ï

ö Û�à{Ú{ÎqÖ�Û�Î)Ü�å�å�Ñ�ÒAÜ�Ï7Û�ô4ÒAÑ�ë£Õ�ôµÎ(Ú{Ú£Ò�ß$Ñ�ÎGÜ�Ú�Ï=Ò£Ó£ÎAèjÖ�Û�Î(Ñ�ÎÜ�Ñ�Î.Ö�Û�Ñ�Î(Î.Ô�Ü�à|ßÞÏ�ÜLî�ÎGÜjÖ�Õ�Ö�Ò§ëAÎ(Î�å­à|ßÞÔ$à{ß�Óvï/V�à|Ñ7ÕãÖ�è�Ò�Ð�ÑÏ7Û�Î�Ï7ë�Î�Ñ�Õ¹Ü�Ñ�Î�ß�Ò�Ö�î�Î�Ñ�à|õ�Î�Ñ�Õ@a�Ï=Ò£Ó£Î.Ö�Û�Ü�Ö�Ï=ÒAßAÖ7Ü�à{ß�ÕYÎ�Ñ�Ñ�Ò�Ñ7ÕÏ�Ü�ßäå�ÜAÕ�Õ³Ö�Û�Ñ�ÒAÐ�ç�ÛXÖ�Û�Î(Ô Õãà{Ú{Î(ß]Ö�Ú{Ø�ï ÍUÎ�Ï(Ò�ß�Ó Ü�ß�ÓäÏ=Ò�ß�âîAÎ(Ñ7ÕãÎ�Ú|ØAè=Ö�Û�ÎiÏ7Û�ÎGÏ7ë�Î(Ñ7ÕvçAà|îAÎ�Î(Ñ�Ñ�ÒAÑ�Õ9ô®Û�Î�ß¹Ö�Û�Î�Ø1Õ�Û�ÒAÐ�Ú{Ó¹ß�Ò�Ö�ïVNÜ�Ú�ÕãÎ�åQÒAÕ�à|Ö�à{î�Î�Õ�Ï(Ü�ß­Ü�Ñ�à{Õ�Î�×NÒ�Ö�Û­×QÎ�Ï�Ü�Ð�Õ�Î�Ö�Û�ÎEÏ7Û�ÎGÏ7ë�Î�Ñ�� ÕÜ�ß�Ü�Ú{Ø£Õãà�Õ�à�Õ�ÒjîAÎ(Ñ�Ú|Ø$Õãà{Ô�å�Ú|à�ÕãÖ�à�Ï®Ò�Ñ4×NÎGÏ(Ü�ÐNÕãÎ�ÕãÖ�Ü�Ö�à�Ï)Ü�ßNÜ�Ú{ØUÕ�à�Õà�Õ4Ð�ß�Ó£ÎGÏ=à�Ó�Ü�×�Ú{Î1à|ß³ç�Î�ß�Î(Ñ7Ü�Ú�ïh Î�Õ�å�à|Ö�Î Ö�Û�à�Õ�èUÖ�Û�Î æoÜ�Ú�ÕãÎ1åQÒAÕãâà|Ö�à{î�Î�Ñ�Ü�Ö�Î)à�ÕO^]Ð�à|Ö�Î Ú|Òjôji Ú|ÎGÕ�Õ�Ö�Û�Ü�ßlk �nm à{ß.Ô�ÒAÕãÖ4Ï�Ü�Õ�Î�Õ�ïV�à{ß�Ü�Ú{Ú{Ø�è�Õ�à|ßNÏ=Îqô4ήÜ�Ñ�εß�Ò�Öo��à|ßUÐ U�ÒAÑ [ ÍPÙà|Ô�å�Ú{Î(Ô�Î�ßAÖ�Î(Ñ7Õ(èôµÎ.Ü�Ñ�Î�Ï(Ü�å�Ü�×�Ú{Î�Ò�æ®Ô�à�ÕkâPÓ£à�Ü�ç�ß�ÒAÕ�à|ß�ç³Î(Ñ�Ñ�Ò�ÑYÑ�Î(åQÒ�Ñ�Ö�Õ�ïeöÀÎÛNÜLî�ÎeÏ(Ò�Ð�ß]Ö�Î�Ñ�ÎGÓÉÖ�Û�à{Õ$å�Ñ�Ò�×�Ú{Î(Ô ×UØÉÑ�Î�Ú|ÎGÜ�Õ�à|ß�çÇÜ�Ú{Ú4Ò�æ�Ò�Ð�ÑÎ�Ñ�Ñ�Ò�Ñ7ÕiÖ�Ò$Ö�Û�Î�Õ�Ø£ÕkÖ�Î(Ô/×�Ð�à{Ú{Ó£Î�Ñ�Õµæ¶ÒAÑ)Ï=ÒAߣõ�Ñ�Ô�Ü�Ö�à{Ò�ß÷ï

ÍUÎGÏ�Ö�à|ÒAß�Õpk�irqYÓ£Î�Õ�Ï=Ñ�à{×NÎGÕ�Ò�Ð�Ñ�à|ß]Ö�Î(ç�Î�Ñ�Ñ�Ü�ß�ç�Î)Ï7Û�Î�Ï7ë�Î�Ñà{ßCÓ�Î=Ö�Ü�à|Ú�ï ÍUÎGÏ�Ö�à{Ò�ßNÕ>k­ç�à{î�ÎGÕEÜ�ß-Òjî�Î�Ñ�îUà{Î(ôts�ÍUÎGÏ�Ö�à{Ò�ßvuÕ�Û�Òjô)Õ�Û�ÒjôÞôµÎµà|ߣæ¶Î�Ñ�Ô�à{Õ�ÕãÎGÓ�ÜAÏ�Ö�à|ÒAß�Õ�s]ÍUÎ�Ï=Ö�à{Ò�ßxw Î�UUå�Ú|ÒAÑ�ÎGÕÜ�ß�Ü�Ú{Ø£Õãà�Õ$à{Õ�Õ�Ð�Î�Õ�s ÍUÎGÏ�Ö�à{Ò�ßzyÀçAà|îAÎ�Õ�Î)U�Ü�Ô$å�Ú|ÎGÕ�Ò�æ¹Î(ߣæ¶ÒAÑ�Ï=âà{ß�ç§Õ�Ð�×£Ö�Ú|Î.Ñ�Ð�Ú{Î�Õ�s�Ü�ß�ÓÂÍUÎGÏ�Ö�à|ÒAß[q&å�Ñ�Î�Õ�Î(ß]Ö�ÕYÒAÐ�Ñ�Ñ�Î�Õ�Ð�Ú|Ö�Õ�ïÍ£Î�Ï�Ö�à|ÒAßQ{¹Î�U£å�Ú{Ü�à|ßNÕ�×QÒ�Ö�ÛeÖ�Û�ιÏ7Û�ÎGÏ7ë]à{ß�ç�Ò�æ÷Ð�Õ�Î(Ñ�â�Õ�Ð�å�å�Ú{à{Î�ÓåQÒ�à{ß]Ö�Î�Ñ�ÕEÜ�ß�Ó Ô�Ü�Ñ�ëUà{ß�ç­Ð�Õ�Î(Ñ�â�Î�U£å�Ú|ÒAà·Ö7Ü�×�Ú{ΧÎ�Ñ�Ñ�Ò�Ñ7Õ(ï Í£Î�Ï�âÖ�à|ÒAß�þ1Ó£à�Õ�Ï(Ð�Õ�Õ�Î�Õ�Ñ�Î(Ú�ÜjÖ�ÎGÓ�ôµÒ�Ñ�ëYÜ�ß�Ó$ÍUÎ�Ï=Ö�à{Ò�ß�ÿ Ï(Ò�ß�Ï(Ú|Ð�Ó�Î�Õ�ï

| } ������� ! 3��)2o~��)�����$�)���E�=���

ó Û�à{Õ1ÕãÎGÏ�Ö�à|ÒAßÇç�à{î�ÎGÕ Ü�ߧÒjî�Î�Ñ�îUà{Î(ôäÒ�æ4Ò�Ð�Ñ1Ñ�Ü�ß�ç�Î$Ï7Û�Î�Ï7ëAÎ(ÑGèô®Û�à{Ï7ÛÂôqÜ�Ñ�ß�ÕYô®Û�Î�ß­à{ßAÖ�Î(çAÎ(Ñ7Õ�Õ�Ð�å�å�Ú{à|ÎGÓÂ×UØzÐ�ßAÖ�Ñ�ÐNÕkÖkôµÒ�Ñ�âÖ�ÛUØeÕãÒAÐ�Ñ7Ï=Î�ÕqÜ�Ñ�ιÐ�Õ�Î�Óeæ¶Ò�Ñ)Ó�Ü�ß�ç�Î�Ñ�ÒAÐ�ÕµÒ�åQÎ(Ñ7ÜjÖ�à|ÒAß�Õµ×NÎ(æ¶Ò�Ñ�ÎåQÎ(Ñ�æ¶Ò�Ñ�Ô�à|ß�ç�ß�ÎGÏ=ÎGÕ�Õ�Ü�Ñ�Ø�Ñ�Ü�ß�ç�ιÏ7Û�ÎGÏ7ëUÕ�ï

V�à{ç�Ð�Ñ�Î � ç�à{î�Î�Õ³Ü�ß-Î)U�Ü�Ô�å�Ú{ÎzÎ�Ñ�Ñ�Ò�ÑEÏ(Ü�Ð�ç�Û]ÖE×UØÙÖ�Û�ÎÏ7Û�Î�Ï7ë�Î�Ñ�ï ó Û�ÎbîjÜ�Ñ�à�Ü�×�Ú{ÎF\(^_�`�a±à{ÕzÑ�ÎGÜ�ÓXæ¶Ñ�Ò�Ô Ü±ÐNÕãÎ�ÑÜ�å�å�Ú{à{Ï�ÜjÖ�à|ÒAß ø î]à�Ü������n� \(^��` ��b�a�^ û Ü�ß�Ó Ö�Û�Î�ß<Ð�ÕãÎGÓÜAÕ Ü�ßêÐ�ß�Ï7Û�Î�Ï7ë�ÎGÓêÜ�Ñ�Ñ�ÜLØ à{ß�Ó£Î�U9ï ð�Ó�Ó�à·Ö�à|ÒAß�Ü�Ú{Ú|ØAèz×QÎ=âÏ�Ü�Ð�Õ�Î1Ö�Û�Î�Ï7Û�Î�Ï7ëAÎ(Ñ)Ó£ÒUÎ�Õ)à|ß]Ö�Î�Ñãâ�å�Ñ�Ò£Ï=Î�Ó�Ð�Ñ�Ü�ÚvÜ�ß�Ü�Ú|Ø£Õ�à{Õ ø ÕãÎ�Î�Aw û à·ÖEôµÜ�Ñ�ß�Õ�Ö�Û�ÜjÖl\(^_�`�aÀà{Õ�åNÜ�Õ�ÕãÎGÓÞÖ�ÒÉÖ�Û�Χæ¶Ð�ß�Ï�Ö�à|ÒAßb�a�de�f ��a��\�^_�`�aNè�ô®Û�à�Ï7ÛeÕãà{Ô�à|Ú�Ü�Ñ�Ú{Ø$ÐNÕãÎGÕià|Ö)Ü�ÕµÜ�ß.à{ß�Ó£Î�U9ï[ Ò�Ö�ÛÉÎ(Ñ�Ñ�ÒAÑ�Õ¹Ú{Î=Ö$Ü�ßÂÜjÖ�Ö�Ü�Ï7ëAÎ(Ñ�Ï(Ò�Ñ�Ñ�Ð�å�Ö�Ü�Ñ�×�à·Ö�Ñ�Ü�Ñ�ØÇë�Î(Ñ�ß�Î�ÚÔ�Î�Ô$ÒAÑ�ØAïöÀÎ�ç�à{î�Î�Ü�ßYÒjî�Î�Ñ�îUà{Î(ôÇÒ�æUÖ�Û�ÎiÏ7Û�Î�Ï7ë�Î�Ñv×NÎ�Ú|ÒjôtsLÖ�Û�Î�ß�Î�UUÖ

Ö�Û�Ñ�Î(ÎYÕãÎGÏ�Ö�à|ÒAß�Õ®Ó£à�Õ�Ï(Ð�Õ�Õ®Õ�Î(îAÎ(Ñ7Ü�ÚvÜ�Õ�åQÎ�Ï�Ö7Õqà|ß�Ô�Ò�Ñ�ÎYÓ£Î=Ö7Ü�à{Ú\ïð�×�ÕkÖ�Ñ�ÜAÏ�Ö�Ú|ØAè�Ö�Û�Î Ï7Û�Î�Ï7ëAÎ(ÑÇÎ�ß�Õ�Ð�Ñ�ÎGÕ§Ö�Û�ÜjÖÂÓ�Ü�Ö�ܱå�Ñ�Ò�â

Page 3: Using Programmer-Written Compiler Extensions to Catch Security

�������L��� ���U�G������� ����b � b ��������� ð)Ú{ÚÂÕãØ£ÕãÖ�Î(Ô Ï�Ü�Ú{ÚzåNÜ�Ñ7Ü�Ô�Î=Ö�Î(Ñ7Õ

Ò�æ.Ü�ßUØ ÖkØUåQÎ�ï bPß ×NÒ�Ö�Û [ ÍPÜ�ß�ÓF�÷à{ß]ÐZUÉÕ�Ø£ÕkÖ�Î(Ô Ï(Ü�Ú{Ú�Õ�Û�ÜLîAÎÜÀÝCb �+b é$å�Ñ�Î=õ U9ï

b��� g��P_��_ Ü�Ö�Ü Ñ�Î�ÜAÓ/æ¶Ñ�ÒAÔ Ü ß�Î(Ökô4ÒAÑ�ëå�Ü�Ï7ëAÎ=ÖGï ü ß �÷à{ßUÐ Uvè ß�Î(Ökô4ÒAÑ�ëÓ�ÜjÖ7Ü1à{ÕIà{ß�à|Ö�à�Ü�Ú{Ú|Ø�Ñ�ÎGÜ�Ó�æ¶Ñ�ÒAÔ Ö�Û�Î�P_��_±õ�Î(Ú�Ó�Ò�æeÜ�ß�b��� ÕãÖ�Ñ�Ð�Ï�âÖ�Ð�Ñ�Î�ï�öÀÎµÓ£Ò ß�Ò�Ö�Ó£Ò�Ö�Û�à�ÕIÏ7Û�Î�Ï7ëæ¶Ò�Ñ [ ÍP�ï

���7�P�� ��!�4�#"$�!"Cb%�� Ü�Ö�ÜCÎ)U£å�Ú{à{Ï(à·Ö�Ú|Ø�Ï=Ò�å�à|ÎGÓ æ¶Ñ�Ò�ÔÐ�Õ�Î(ÑqÜ�Ó�Ó£Ñ�Î�Õ�Õ �.à|ß]Ö�Ò�Ö�Û�Î Ô�Î(Ô$âÒ�Ñ�Ø.åQÒ�à{ßAÖ�Î�ÓeÖ�Ò�×UØ&�9ïð�Ó�Ó�à·Ö�à|ÒAß�Ü�Ú{Ú|ØAè�Ö�Û�ÎbîjÜ�Ñ�à�Ü�×�Ú{Î �à{ÕYÜ�Ú{Õ�ÒEÖ�Ü�à{ß]Ö�ÎGÓzÕ�à|ßNÏ=Î$Ð�ÕãÎ�Ñ�Ü�ÓUâÓ£Ñ�Î�Õ�ÕãÎGÕ§Ü�Ñ�έÜ�Ú{Ô�ÒAÕãÖÇÏ=Î(Ñ�Ö�Ü�à|ß�Ú|ØÕãÐ�å�å�Ú{à|ÎGÓY×UØ�Ö�Û�ÎiÐ�Õ�Î(Ñ ø Õ�Î(Î��hu�ï �æ¶Ò�Ñ)Ó£Î(Ö�Ü�à|Ú�Õ û ï

ó Ü�×�Ú|Î � a ó Û�ιÖ�Û�Ñ�Î(ÎYÕ�Ò�Ð�Ñ7Ï=ÎGÕµÒ�æIÐ�ß]Ö�Ñ�Ð�ÕkÖkôµÒ�Ñ�Ö�ÛUØ.Ó�Ü�Ö�Ü�ï

Ó£Ð�Ï(Î�Óä×UØäÜ�ßäÐ�ß]Ö�Ñ�Ð�ÕãÖkô4ÒAÑãÖ�Û]ØXÕãÒAÐ�Ñ7Ï=ÎÂÓ£ÒUÎ�ÕÇß�Ò�ÖÇÑ�Î�ÜAÏ7ÛÜÙÖ�Ñ�Ð�ÕãÖ�à{ß�ç±Õ�à|ß�ëCô®à|Ö�Û�ÒAУÖÇ×QÎ(à{ß�çCÕ�Ü�ß�à·Ö�à|á�Î�Óvï ó ÛUÐ�Õ(è�à·Öà�ÕEÕ�åNÎGÏ=à|õ�Î�Ó±×]ØbÖ�Û�Ñ�Î�ÎÇå�à{Î�Ï(Î�Õ@a ø � û Ö�Û�ÎzÐ�ß]Ö�Ñ�Ð�ÕkÖkôµÒ�Ñ�Ö�ÛUØÕ�Ò�Ð�Ñ7Ï=ÎGÕµÖ�Û�Ü�Ö)ç�Î(ß�Î(Ñ7ÜjÖ�ÎYÓ�Ü�Ö�Ü�è ø k û Ö�Û�Î�Ï7Û�Î�Ï7ë£ÕµÖ�ÛNÜjÖ)Ô�ÐNÕkÖ×QÎ�Ó£Ò�ß�ÎYÖ�Ò.Õ�Ü�ß�à|Ö�à{á(Î�Ö�Û�Î�Ó�ÜjÖ�Ü$æ¶Ñ�Ò�Ô Ö�Û�ÎGÕãÎ�ÕãÒAÐ�Ñ�Ï(Î�Õ�è�Ü�ßNÓø u û Ö�Û�Î�Ö�Ñ�Ð�ÕãÖ�à{ß�çÂÕ�à|ß�ë£Õ$Ö�Û�ÜjÖ�Ô�ÐNÕkÖ�×QÎ&å�Ñ�Ò�Ö�ÎGÏ�Ö�ÎGÓvïíözÎÓ£à�Õ�Ï(Ð�Õ�ÕµÖ�Û�ÎGÕãÎY×QÎ(Ú{ÒjôYï

' �9�(������)(*�N�G�,+�- �,�����j���U��. ó Û�ÎÂÏ7Û�ÎGÏ7ë�Î(ѳÖ�Ñ�ÜAÏ7ëUÕÐ�ß]Ö�Ñ�Ð�ÕãÖ�ÎGÓCÓ�Ü�Ö�ÜÞæ¶Ñ�ÒAÔ Ö�Û�Ñ�Î(ÎÉÕ�Ò�Ð�Ñ7Ï=ÎGÕ ø ÕãÐ�Ô�Ô�Ü�Ñ�à{á(Î�Ó-à|ßó Ü�×�Ú{Î � û a� ï�ÍUØ£ÕkÖ�Î(Ô Ï�Ü�Ú{Ú{Õ�ï ó Û�Î�Õ�γÖkØ]å�à{Ï�Ü�Ú{Ú|Ø­ÜAÓ£Û�Î(Ñ�γÖ�ÒÉôµÎ(Ú{Ú·âÓ£Î=õ�ß�Î�Ósß�Ü�Ô�à{ß�ç<Ï=Ò�ßUîAÎ(ß]Ö�à{Ò�ß�Õ ø ÎAï çNï|èXÒ�ß ×QÒ�Ö�Û�÷à{ß]ÐZU Ü�ß�Ó [ ÍP Ö�Û�Î(à{ÑzßNÜ�Ô�Î�Õz×NÎ�ç�à{ß ô®à|Ö�Û Ö�Û�Îå�Ñ�Î(õZU�Ý�b � b é û ï ó Ò­Ó£Î=Ö�Î�Ï=Ö.Ö�Û�ÎGÕãÎÇÑ�ÒAУÖ�à{ß�Î�Õ�è4Ö�Û�ÎÏ7Û�Î�Ï7ëAÎ(Ñ�Ï�Ü�Ú{Ú{Õ$ܧÐNÕãÎ�ÑãâPÕãÐ�å�å�Ú{à|ÎGÓÂæ¶Ð�ß�Ï=Ö�à{Ò�ßÞÖ�Û�Ü�Ö$Ñ�Î=âÖ�Ð�Ñ�ß�Õ � à|æ�ÜYçAà|îAÎ(ß$æ¶Ð�ß�Ï=Ö�à{Ò�ß�ß�Ü�Ô$Î Ï=Ò�Ð�Ú{Ó�×QÎ Ü�Õ�Ø£ÕkâÖ�Î(Ô Ï(Ü�Ú|Ú�è � à·æIà·Ö�Ï(Ò�Ð�Ú�Ó³ß�Ò�ÖGï

k�ï ó Û�αÑ�Ò�УÖ�à|ß�ÎGÕÂÖ�Û�ÜjÖbÏ�Ü�ß Ï(Ò�åUØ�Ó�Ü�Ö�Üäæ¶Ñ�Ò�Ô Ð�Õ�Î(ÑÕãå�ÜAÏ=ÎAï ó Û�Î�Õ�Î&Ñ�ÒAУÖ�à{ß�Î�ÕEÜ�Ñ�ΧÕãÐ�å�å�Ú{à|ÎGÓ±Ü�Õ.ÜÂÖ�Î)UUÖõ�Ú|Î�ç�à{îUà|ß�çeÖ�Û�Î$Ñ�Ò�УÖ�à|ß�Î$ß�Ü�Ô$Î$Ü�ß�Ó§Ö�Û�Î�Ü�Ñ�ç�Ð�Ô$Î�ß]ÖÖ�Û�Ü�Ö¹Ñ�Î(å�Ñ�ÎGÕãÎ�ßAÖ7Õ Ö�Û�Î.Ï(Ò�å�à{Î�Ózà|ßÉÓ�Ü�Ö�Ü�ï V�Ò�ѹÎ)U�Ü�Ô$âå�Ú|ÎAèAÒAßA�÷à{ßUÐ U�Ö�Û�Î Ñ�ÒAУÖ�à{ß�Î�Õ����7�P� \(^��` ��b�a�^�Ü�ßNÓ/ a�� ��b�a�^ÉÏ=ÒAåUØÉÓ�ÜjÖ�ÜÇà|ß]Ö�Ò§Ö�Û�Î(à{Ñ�õNÑ�ÕãÖ�Ü�Ñ�çAÐ�Ô�Î(ß]Ö�ïü ß [ ÍP �����P�� ���Ï=ÒAå�à|ÎGÕ�ÐNÕãÎ�Ñ1Ó�Ü�Ö�Ü�à{ß]Ö�ÒEÖ�Û�Î$ÕãÎGÏ�âÒ�ß�Óvï ó ØUå�à�Ï(Ü�Ú{Ú{Ø�è�Ö�Û�Î(Ñ�ÎEÜ�Ñ�γ×NÎ(Ökô4Î�Î(ßÞÖkô4ÒÇÖ�ÒzÖ�Î(ßÕãÐ�Ï7Û³Ñ�Ò�УÖ�à|ß�ÎGÕ(ï

u�ï� Ü�Ö�Üeæ¶Ñ�ÒAÔêÖ�Û�Î$ß�Î=ÖkôµÒ�Ñ�ë9ï ó Û�à�Õ¹Ñ�Î^AÐ�à|Ñ�Î�Õ1ÕãåQÎ�Ï(à·æ¶Ø]âà|ß�ç�ô®Û�à�Ï7ÛÂÓ�ÜjÖ7Ü&ÕkÖ�Ñ�ÐNÏ�Ö�Ð�Ñ�ÎGÕYÏ=Ò�ß]Ö7Ü�à{ßzå�ÜAÏ7ë�Î(ÖYÓ�ÜjÖ�ÜÜ�ß�ÓÂÛ�Òjô à·Ö�à�Õ�Î�UUÖ�Ñ7Ü�Ï�Ö�Î�Ó­ÜAÕ$ô4Î�Ú|ÚqÜ�Õ$ô®Û�à�Ï7ÛÞÑ�Ò�Уâ

� � �����@���������7�� !���"�� �10���� �����C8n�����('%& ,��C8n�@�)�+* '%�n'32@*���('%& , ��-�5 6�$�#�1 ���

��1@24��-C5 67,�1�� -98n,�#�"�!��@2;:���=>����?�=A"���B !�-�1@2;�(E�E�E� !�.�# ��DF�CG H�I�J K�L@M

��1@2;�������54FR �%8n����R�$�# 17, ��-C#�D .(E� !�.�# ��DF�CG�6CX57 I�K�M

$�# 1 N �C8n����RC$�# 17/ ��"�. Sc���)���54 U@M�������1 24��-C5 67,�1�� -98n,�#�"�!��@2�$�#�17,�5 ���C 7��R� ��C��.�#���/+=

����������� !7"�" =c���T#�"�!��(E�E� !�.�# ��DF�CG H�I�J K�L@M

V�à{ç�Ð�Ñ�ÎQkZa ù à�Õ�Õãà{ß�çÇÚ{ÒjôµÎ(Ñ$×NÒAÐ�ß�ÓÞÏ7Û�Î�Ï7ëÀÖ�Û�Ü�Ö.Ü�Ú{Ú|Òjô)Õ�ÜÑ�Î�ÜAÓ�Ò�æ4Ü�Ñ�×�à·Ö�Ñ�Ü�Ñ�سë�Î�Ñ�ß�Î�Ú�Ô�Î(Ô�ÒAÑ�ØAï ó Û�Î$ÕãÖ�Ñ�Ð�Ï�Ö�Ð�Ñ�Î8�³à{ÕÑ�Î�ÜAÓ�æ¶Ñ�Ò�ÔêÖ�Û�Î$ÐNÕãÎ�Ñ�ï b�Ö7ÕYÕãà{ç�ß�Î�Ó§à{ß]Ö�Î�ç�Î(Ñ1õ�Î�Ú{Ó9�#:3 5�;�³à{ÕÐ�å�åNÎ�Ñãâ�×QÒ�Ð�ß�Ó Ï7Û�Î�Ï7ë�ÎGÓÙ×�Уֳß�Ò�Ö³Ú|ÒjôµÎ(Ñ�â�×QÒ�Ð�ß�ÓÙÏ7Û�Î�Ï7ëAÎ�Ó×QÎ=æ¶ÒAÑ�Î ×NÎ�à|ß�ç�Ð�Õ�Î�ÓEÜ�ÕµÜ�ß³Ü�Ñ�Ñ�ÜLØ$à|ßNÓ£Î)Uvï�ð�ÕqÜ�×NÒAß]ÐNÕ(è]Ö�Û�ÎõNÎ(Ú�Ó��#:���b7a;��à�Õ®Ï=ÒAÔ$å�Ú|Î(Ö�Î(Ú{Ø.Ð�ßNÏ7Û�Î�Ï7ëAÎ�Óvè�Ü�Ú|Ú{Òjô®à|ß�ç�Ð�å³Ö�Òk�< [ Ò�æ®Ð�Õ�Î(Ñ�Ó�ÜjÖ7ܳÖ�Ò&×QÎeÏ=ÒAå�à|ÎGÓÀà|ß]Ö�Ò�Ö�Û�Î.ëAÎ(Ñ�ß�Î(ÚIæ¶Ñ�Ò�ÔÐNÕãÎ�ÑqÕ�å�ÜAÏ=Î�ï

Ö�à{ß�Î�Õ�ÕãÎ�ß�Ó�Ü�ß�Ó³Ñ�Î�Ï=Î�à|îAÎYÓ�ÜjÖ7Ü�ï�öÀÎ�Ï=Ð�Ñ�Ñ�Î(ß]Ö�Ú{Ø.Ò�ß�Ú|ØÕãÐ�å�åNÒAÑãÖ Ö�Û�à�Õ¹Ï7Û�Î�Ï7ë³Ò�ß��÷à{ß]ÐZU9ïYÍUÎGÏ�Ö�à{Ò�ß�u�ï u�ç�à{î�ÎGÕÔ�Ò�Ñ�ιÓ�Î=Ö�Ü�à|Ú�ï

���=�>¶� �?���A@ä�5+A�U�,B÷��. bPßÞçAÎ(ß�Î�Ñ�Ü�Ú\è�Õ�à{ç�ß�ÎGÓ­à{ßAÖ�Î(çAÎ(Ñ7ÕÔ�Ð�ÕãÖ�×NÎ�×NÒ�Ö�Û§Ð�å�åNÎ�ÑãâqÜ�ß�Ó�Ú{ÒjôµÎ(Ñ�â�×QÒ�Ð�ßNÓ�Õ)Ï7Û�ÎGÏ7ë�Î�Ó�s�Ð�ߣâÕ�à{ç�ß�ÎGÓ�à{ß]Ö�Î(çAÎ(Ñ7ÕIß�Î(ÎGÓ$Ò�ß�Ú{Ø�Ü�ß�Ð�å�åNÎ�Ñãâ�×NÒAÐ�ß�Ó�Ï7Û�ÎGÏ7ëQï�ò)ߣâÖ�Ñ�ÐNÕkÖ�Î�ÓYà{ß]Ö�Î(çAÎ(Ñ7Õ�Ï�Ü�ß�Ü�Ú{Õ�Ò)×QεÕ�Ü�ß�à·Ö�à|á�Î�ÓYô®à|Ö�Û$Ü�ß�Î^]Ð�Ü�Ú{à·ÖkØÏ7Û�Î�Ï7ë9è�Õãà{ß�Ï(ÎeÖ�Û�à{Õ$×QÒ�Ð�ßNÓ�Õ$Ö�Û�γà{ßAÖ�Î(çAÎ(Ñ$Ö�ÒÉÕãà{ß�çAÚ|ÎEß]Ð�Ô�â×QÎ(Ñ ø Ö�Û�ÎYÓ£Î�ç�Î(ß�Î(Ñ7ÜjÖ�Î Ñ�Ü�ß�ç�Î û ï�ö Û�à{Ú|Î1Ö�Û�Î1ß�Î(Î�Ó.æ¶Ò�ѵÖ�Û�Î�Õ�ÎÏ7Û�Î�Ï7ë£Õ�à�Õ�Õ�à|Ô�å�Ú{εÖ�Ò1Ð�ß�Ó£Î�Ñ�ÕãÖ�Ü�ß�ÓvèjÖ�Û�ÎqåNÒ]Õ�Õ�à|×�à|Ú{à·ÖkØ�Ò�æ�à{ß]Ö�Î=âçAÎ(Ñ4Òjî�Î(Ñ�X�ÒjôÙÏ(Ü�ß.Ô�Ü�ë�Î)Ö�Û�Î�Ô Ó£à `.Ï(Ð�Ú·ÖµÖ�Ò$Ò�×QÎ(Ø�à{ß.å�Ñ7Ü�Ï=âÖ�à{Ï(Î ø ÕãÎ�Î ��y û ï ù Ü�ßUØ�å�Ñ�Ò�ç�Ñ7Ü�Ô�Ô�Î(Ñ7Õ�Ü�å�åNÎGÜ�Ñ4Ö�Ò�î]à{Î(ô-à|ߣâÖ�Î(çAÎ(Ñ7Õ�Ü�Õ�Û�ÜLîUà|ß�çeÜ�Ñ�×�à|Ö�Ñ7Ü�Ñ�ØEå�Ñ�Î�Ï(à{Õ�à{Ò�ß÷èNÑ�Ü�Ö�Û�Î�Ñ�Ö�Û�Ü�ߧ×QÎ=âà{ß�çÉõZU£ÎGÓUâ�Õ�à{á(Î�Ó ^]Ð�Ü�ß]Ö�à·Ö�à|ÎGÕ.Ò�åQÎ(Ñ7ÜjÖ�Î�ÓbÒ�ßÙô®à|Ö�Û Ô�Ò£Ó£Ð�Ú{ÒÜ�Ñ�à|Ö�Û�Ô$Î(Ö�à�Ï�ïð±Ï(Ò�Ô�Ô�Ò�ß�Î�Ñ�Ñ�Ò�Ñ�à�ÕIÖ�Ò�ÕkÖ�Ò�Ñ�Î)ÜYÐ�Õ�Î(Ñ�â�Õ�Ð�å�å�Ú{à{Î�Ó$Ú|Î�ß�ç�Ö�Û

ÒAѹà|ß�Ó�Î)UÇà{ßÂÜEÕ�à|çAß�Î�ÓzîjÜ�Ñ�à{Ü�×�Ú{Î�×�Ð�ÖYÖ�Û�Î�ßÀÒAß�Ú{اåNÎ�Ñãæ¶ÒAÑ�ÔÜ�ß&Ð�å�åQÎ(Ñ�â�×QÒ�Ð�ß�Ó§Ï7Û�ÎGÏ7ëEÒAߧà·ÖGèvÜ�Ú{Ú|Òjô®à{ß�ç.Ü�ßzÜjÖãÖ7Ü�Ï7ëAÎ(Ñ®Ö�ÒÏ(Ò�Ô�å�Ñ�Ò�Ô�à�ÕãÎiÖ�Û�ήÕ�ØUÕãÖ�Î�Ô ×UØYå�Ü�Õ�Õ�à|ß�ç1à{ß�ß�Î�çAÜ�Ö�à{î�ÎiîjÜ�Ú|Ð�ÎGÕ(ïV�à{ç�Ð�Ñ�Î kÀç�à{î�ÎGÕ.ÜÂÑ�Î(å�Ñ�Î�Õ�Î(ß]Ö7ÜjÖ�à{î�Î�Î�U£Ü�Ô�å�Ú|ÎAïDC�Î(Ñ�Î&Ö�Û�ÎÓ�ÜjÖ�ܧà|ßíÕkÖ�Ñ�Ð�Ï=Ö�Ð�Ñ�ÎE�Àà�Õ$Ï(Ò�å�à{Î�ÓÀæ¶Ñ�Ò�Ô Ð�Õ�Î(Ñ�Õ�å�Ü�Ï(Î�ï ó Û�ÎÕ�à{ç�ß�ÎGÓ¹õ�Î(Ú�ÓF�!:3 �;� à�Õ�Ï7Û�ÎGÏ7ë�Î�Ó�Ü�çAÜ�à|ßNÕkÖIÜ�ß�Ð�å�åNÎ�Ñ�×NÒAÐ�ß�Óvè×�УÖ.ß�Ò�ÖeÜ�çAÜ�à|ß�ÕãÖ.ÜÀÚ|ÒjôµÎ(Ñ�×QÒ�Ð�ßNÓvï ó ÛUÐ�Õ�èµÜ�ßÙÜ�ÖãÖ7Ü�Ï7ë�Î�ÑÏ(Ò�Ð�Ú�Ó&å�ÜAÕ�Õ1à{ßzÜEß�Î(ç]ÜjÖ�à|îAÎ�îjÜ�Ú{Ð�Î�Ö�Òeæ¶ÒAÑ�Ï(Î�Ö�Û�Î$ë�Î(Ñ�ß�Î�Ú�Ö�ÒÑ�Î�ÜAÓ�æ¶Ñ�Ò�Ô Ü�Ñ�×�à·Ö�Ñ�Ü�Ñ�Ø�Ô�Î(Ô�ÒAÑ�ØAï

b�Ö)à�Õqà|Ô�åQÒ�Ñ�Ö�Ü�ßAÖqÖ�Ò$ß�Ò�Ö�Î1Ö�Û�ÜjÖ®Ö�Û�Î�Ï7Û�Î�Ï7ëAÎ(ѵà{ÕqÎ�U£å�Ú|à�Ï�âà|Ö�Ú{ØXÐ�ß�Õ�Ò�Ð�ß�Óäà{ßäÖ�ÛNÜjÖÇà|ÖÇÎ(ßNÕãÐ�Ñ�Î�Õ&Ö�Û�Ü�ÖzÜ�ß Ð�ß]Ö�Ñ�Ð�ÕãÖ�ÎGÓîjÜ�Ú|Ð�ÎÙà�ÕÂÏ7Û�Î�Ï7ëAÎ�Ó�Ü�çAÜ�à|ßNÕkÖ �(�j��� ×NÒAÐ�ß�Ó#Ñ7ÜjÖ�Û�Î(ÑÀÖ�Û�Ü�ßÜ�çAÜ�à|ß�ÕãÖ�Ö�Û�ΧÏ=ÒAÑ�Ñ�Î�Ï=Ö�ÒAß�Î�ï ó Û�Î�Ú{ÜAÏ7ëÂÒ�æ¹Ü�ßUØÞÕ�åNÎGÏ=à|õNÏ(Ü�âÖ�à|ÒAß�Ò�æ÷Õ�à|á�Î�Õ�à{ß�Ñ�Î�Ü�ÚNÏ=Ò£Ó£Î)Ô�Ü�ëAÎ�Õiå�Ñ�ÎGÏ=à�ÕãÎAèAÕãÖ�Ü�Ö�à�Ï®×NÒAÐ�ß�Ó�ÕÏ7Û�Î�Ï7ëUà|ß�çeÏ7Û�Ü�Ú{Ú{Î(ß�çAà|ß�çNï ü Ð�Ñ1Ó£Î�Ï(à{Õ�à|ÒAß&Ö�ÒEß�Ò�Ö¹Ô�Ò£Ó£Î(ÚIÜ�Ï=âÏ(Ð�Ñ7ÜjÖ�Î�×QÒ�Ð�ß�Ó�ÕYÔ�Î�Ü�ß�Õ�ôµÎ.Ï(Ü�ßÉÐ�ÕãÎEÕãà{Ô�å�Ú|ÎEÜ�ß�Ü�Ú|Ø£Õ�à{Õ1Ö�Ò

Page 4: Using Programmer-Written Compiler Extensions to Catch Security

�����B÷� ���U�G������� ����_�^(^_�� � ��� ð)Ñ�Ñ�ÜLسà{ß�Ó£Î)UQa1Ï=Ò�Ñ�Ñ�Ð�å£Ö ëAÎ(Ñ�ß�Î(Ú

Ô�Î(Ô�Ò�Ñ�Ø.Ò�Ñ)Ï(Ñ�ÜAÕãÛ³ÕãØ£ÕãÖ�Î�Ô³ï���� ��(a � �� ��� ò)å�åQÎ(ѹÒAÑ1Ú{ÒjôµÎ(Ñ�Ú{ÒUÒ�åz×NÒAÐ�ß�ÓQa

Ú|ÒUÒAå Ö�Î�Ñ�Ô�à{ß�ÜjÖ�à|ÒAß Ð�ßNÓ£Î(ÑÐ�Õ�Î(Ñ7Õ®Ï=Ò�ß]Ö�Ñ�ÒAÚ\ï

���7���P� � �!"� "$���]è`�a�` ���P� �4�#"� "$���

�÷Î�ß�ç�Ö�Û�Ü�Ñ�ç�Ð�Ô�Î(ß]Övæ¶ÒAÑ�Ü®Ô�Î(Ô$âÒ�Ñ�سÏ(Ò�åUسÒ�åQÎ(Ñ7ÜjÖ�à{Ò�ß�aµÏ(Ò�Ñ�Ñ�Ð�å�ÖÔ�Î(Ô�Ò�Ñ�Ø�ï

���7�P���� � ���!"4�#" ���U��7�P�� ��!�4�#"$�!"$���

�÷Î�ß�ç�Ö�Û Ü�Ñ�ç�Ð�Ô�Î(ß]ÖÉæ¶Ò�ÑÞÐ�ÕãÎ�Ñãâë�Î�Ñ�ß�Î�ÚµÏ(Ò�åUØÉÒ�åQÎ(Ñ7ÜjÖ�à|ÒAß�a�Ú|ÎGÜ�ëà|ß�æ¶Ò�Ñ�Ô�Ü�Ö�à{Ò�ßÀÖ�ÒÇÐ�ÕãÎ�Ñ�Ò�Ñ�Ï=Ò�åUØÐ�ß�Î�UUåQÎ�Ï=Ö�ÎGÓ-Ü�Ô�ÒAÐ�ß]ÖeÒ�æ�Ð�Õ�Î(ÑÓ�ÜjÖ7Ü$à|ß]Ö�Ò�ëAÎ(Ñ�ß�Î(Ú ø � y£ï � û ï

�7`+_���(���������Uè`�_����(�����$���

ÍUà{á(Î Ü�Ñ�ç�Ð�Ô�Î�ßAÖ æ¶Ò�Ñ Ô�Î(Ô$âÒ�Ñ�Ø­Ü�Ú{Ú|Ò£Ï�ÜjÖ�ÒAÑ@a³Ô�Î(Ô�Ò�Ñ�Ø­Ï=ÒAÑãâÑ�Ð�å£Ö�à{Ò�ß ÒAÑÞÓ�Ü�ß�ç�Î(Ñ�Ò�ÐNÕÂÕkÖkØUÚ{Îø � y�ï k û ï

ó Ü�×�Ú{Îzk a ÍUÐ�Ô�Ô�Ü�Ñ�Ø Ò�æeÖ�Ñ�Ð�ÕãÖ�à{ß�ç Õ�à|ß�ëUÕÂÜ�ß�Ó�Ö�Û�αÜ�ÖãâÖ�ÜAÏ7ë£Õ.Ü�Ú{Ú|ÒjôµÎ�Óíà|æ�ÜÀÖ�Ü�à|ß]Ö�ÎGÓ îjÜ�Ñ�à{Ü�×�Ú{Î �ÞÑ�Î�Ü�Ï7Û�Î�Õ�Ö�Û�Î(Ô�ïó Û�εõ�Ñ7ÕkÖ�ÖkôµÒ¹Õãà{ß�ë£Õ�Ü�Ñ�ήÕãØ£ÕãÖ�Î(Ô$â�à|ßNÓ£Î(åQÎ(ß�Ó�Î(ß]Ö�Ü�ß�Ó$Û�Ü�Ñ�ÓUâô®à{Ñ�ÎGÓ à|ß]Ö�Ò­Ö�Û�ÎÀÏ7Û�ÎGÏ7ë�Î�Ñ�s Ö�Û�ÎÀÑ�Î�ÕãÖ³Ü�Ñ�ÎÇÕ�åNÎGÏ=à|õ�Î�Ó-Ò�ß-ÜåQÎ(Ñ�â�Õ�Ø£ÕkÖ�Î(Ô ×�ÜAÕãà�Õ�ï

õ�ß�Ó³Ô�Ü�ßUØ.Î�Ñ�Ñ�Ò�Ñ7Õ�èAô®à|Ö�Û�æ¶Î�ô-æoÜ�Ú{Õ�ιåNÒ]Õãà|Ö�à{î�ÎGÕ(ï� �5����� �>@Ù� ���B÷��. ð�ÕYÕ�Ð�Ô�Ô�Ü�Ñ�à|á�Î�Ó§à{ß ó Ü�×�Ú|Î k.Ö�Û�Î

Ï7Û�ÎGÏ7ë�Î(ÑSXQÜ�çAÕ�ô®Û�Î(ßYÐ�ß�Õ�Ü�ß�à|Ö�à{á(Î�Ó¹îjÜ�Ú|Ð�ÎGÕ÷Ñ�Î�ÜAÏ7Û æ¶ÒAÐ�Ñ÷ÖkØUåQÎ�ÕÒ�æ�Ö�Ñ�ÐNÕkÖ�à|ß�çEÕãà{ß�ë£Õ(ï ó Û�Î�Ô�ÒAÕãÖ�Ò�×UîUà{Ò�Ð�Õ)Õ�à{ß�ë£Õ Ü�Ñ�Î�Ü�Ñ�Ñ7ÜLØ£Õô®Û�Ò]ÕãÎ1×NÒAÐ�ß�Ó�ÕqÏ�Ü�ße×QιÎ)U�Ï=Î�Î�Ó£ÎGÓvï�ÍUà{ß�Ï=ÎYÜ�Ñ�Ñ7ÜLØUÕià|ß ú Ó£Òß�Ò�ÖiÛ�ÜLî�Îq×�Ð�à|Ú|Öãâ�à|ß�×QÒ�Ð�ß�Ó�ÕiÏ7Û�Î�Ï7ë£Õ(è�Ö�Û�Î�ë�Î(Ñ�ß�Î�Ú£Ô�Ð�ÕãÖiå�Ñ�Î=âî�Î�ß]Ö1Ö�Û�Î�Ð�Õ�Î(ѹæ¶Ñ�Ò�Ô Ñ�ÎGÜ�Ó£à{ß�ç³Ò�ÑYô®Ñ�à·Ö�à|ß�ç�Ò.�ÞÎ(à|Ö�Û�Î�ÑYÎ(ß�ÓÒ�æiÖ�Û�Î�Ü�Ñ�Ñ�ÜLØAï ó Û�Î�Õ�Î�Ï(Ò�ß�ÓÇÕãà{ß�ë&à�Õ�Ö�Û�ÜjÖ¹à|æµÜ.ÐNÕãÎ�Ñ1îjÜ�Ú|Ð�ÎÕ�åNÎGÏ=à|õ�Î�Õ�Ö�Û�Î4ßUÐ�Ô�×NÎ�Ñ�Ò�æ�à|Ö�Î(Ñ7ÜjÖ�à|ÒAß�Õ�æ¶Ò�ÑIÜ�Ú{ÒUÒ�å÷èLÖ�Û�ÜjÖIÚ|ÒUÒAåÏ(Ü�ß�Ñ�Ð�ß¹æ¶Ò�Ñ1ÝkÖ�Ò]Ò�Ú|ÒAß�ç�è é�Ü�Ú|Ú{Òjô®à|ß�ç�Ü)Ó£Î�ß�à{Ü�Ú·â�Ò�æ¤âPÕ�Î(Ñ�î]à�Ï=Î�Ü�ÖãâÖ�ÜAÏ7ë9ïFV�à|ßNÜ�Ú{Ú|ØAè�Ö�Û�εÚ{Î(ß�ç�Ö�Û�Ü�Ñ�çAÐ�Ô�Î(ß]Ö�Ö�Ò¹îLÜ�Ñ�à{Ò�ÐNÕ�Ï(Ò�åUØUà|ß�çÜ�ßNÓ�Ü�Ú{Ú|Ò£Ï(Ü�Ö�à{Ò�ß�Ñ�Ò�УÖ�à|ß�Î�Õ�Ô�Ð�ÕãÖ4×QÎ�å�Ñ�Ò�Ö�Î�Ï�Ö�Î�Óvï ó Û�Î Ô$Ò]ÕkÖÕãÖ�Ñ7Ü�à{ç�Û]Öãæ¶ÒAÑ�ôqÜ�Ñ7Ó�Î�Ñ�Ñ�Ò�Ñ�à|ßYÖ�Û�à�Õ�Ï�Ü�Õ�Î�à{Õ�Ö�ÛNÜjÖ�Ü�ß�Ð�ß�Ï7Û�Î�Ï7ë�ÎGÓÚ{Î(ß�ç�Ö�ÛÇÜ�Ú|Ú{Òjô)Õ�Ü�ßÇÜjÖ�Ö�Ü�Ï7ëAÎ(Ñ�Ö�ÒeÑ�Î�ÜAÓ&Ò�Ñ ô®Ñ�à|Ö�Î�Ô�Ò�Ñ�Î�ë�Î�Ñãâß�Î�Ú�Ó�ÜjÖ7ܧÖ�Û�Ü�ßÙôqÜ�Õ$Î)U£åQÎ�Ï=Ö�Î�Ó÷ï �'U�Ü�Ô�å�Ú{Î�Õ$Ò�æ¹ÕãÐNÏ7ÛbÎ�ÑãâÑ�Ò�Ñ7Õ1Ü�Ñ�Î�çAà|îAÎ(ßÉà|ß V�à{ç�Ð�Ñ�ÎAk�Ü�ß�Ó/V�à|çAÐ�Ñ�ÎA{£ïeð)Ú{Ú{ÒUÏ�ÜjÖ�à|ÒAß×�ÜAÕãÎGÓbÒAßÙÐ�ß�Õ�Ü�ß�à|Ö�à{á(ÎGÓbà{ß]Ö�Î�ç�Î(Ñ7Õ�à�ÕeÜjÖ.Ú{Î�ÜAÕkÖ.×NÜ�ÓÙÕkÖkØUÚ{Î�èÜ�ßNÓÂÏ(Ü�ßÂÜ�Ú{Õ�Ò�×NÎ.ÐNÕãÎGÓÀÖ�Ò§Ú�Ü�Ð�ßNÏ7ÛÉÕ�Ð�×£Ö�Ú|ÎeÔ$Î�Ô�Ò�Ñ�ØzÏ=ÒAÑãâÑ�Ð�å£Ö�à{Ò�ßbÜjÖãÖ7Ü�Ï7ë£Õ ø ÕãÎ�Î �xy�ï k û ï ó Û�Î.õ�Ñ7ÕãÖ�ÖkôµÒÇÕãà{ß�ë£Õ$Ü�Ñ�ÎÕ�ØUÕãÖ�Î�Ô$â�à{ß�Ó£Î�åNÎ�ß�Ó£Î(ß]Ö�s9Ö�Û�Î$Ú{Ü�ÖãÖ�Î(Ñ�Ô�Ð�ÕãÖ1×QÎ$Õ�åQÎ�Ï=à|õ�ÎGÓ�æ¶Ò�ÑÎ�ÜAÏ7ÛEß�Î(ôCÕ�Ø£ÕkÖ�Î(Ô�ï

ó ÛUÐ�Õ�è£Ö�Û�Î�Ï7Û�Î�Ï7ëAÎ(Ñ®Ú{Ò]ÒAë£Õqæ¶Ò�Ñ�Ü�å�å�Ñ�Ò�U£à|Ô�ÜjÖ�Î(Ú{Ø u�� u��u��zk({¹ÖkØUåQÎ�Õ®Ò�æ�Õ�Î�Ï(Ð�Ñ�à|ÖkØ�Û�ÒAÚ|ÎGÕ�a�Ö�Û�Ñ�Î�Î1åQÒAÕ�Õ�à|×�Ú{ÎYÕãÒAÐ�Ñ7Ï=Î�ÕÒ�æ à|ߣæ¶ÒAÑ�Ô�Ü�Ö�à{Ò�ßÞÏ(Ò�Ô�×�à|ß�ÎGÓÂô®à|Ö�Û­Ö�Û�Ñ�Î(ÎEÏ7Û�Î�Ï7ëUà|ß�çÇÎ(Ñ�Ñ�Ò�Ñ7ÕÏ=ÒAÔ�×�à{ß�ÎGÓeô®à|Ö�Û³Ö�Û�Ñ�Î�ιÖkØ]åQÎ�ÕqÒ�æ�Ö�Ñ�ÐNÕkÖ�à|ß�ç�Õ�à|ß�ëUÕ�ï

��� ��� � � � �9�G�£� ���� V�à{ç�Ð�Ñ�Î u#ç�à{î�ÎGÕ Ü#ÕãÖ�Ü�Ö�ÎäÔ�ÜjâÏ7Û�à{ß�Î.îUà{Î(ô Ò�æqÖ�Û�ÎeÑ7Ü�ß�çAÎ.Ï7Û�Î�Ï7ëAÎ(ÑGï b�Ö�ÛNÜ�ÕYæ¶ÒAÐ�Ñ�ÕãÖ�Ü�Ö�ÎGÕ�a

V�à{ç�Ð�Ñ�ÎtuZa�ð�å�å�Ñ�Ò�UUà{Ô�ÜjÖ�Î1Ñ7Ü�ß�ç�ιÏ7Û�Î�Ï7ëAÎ(ÑGï

�_� �� �Pa;�Qè ��ana�� � � ø Ý�ß�Î(ÎGÓ Ú{Òjô4Î�ÑÇ×QÒ�Ð�ßNÓ�é û è ��ana;� �;�ø Ýãß�Î�Î�Ó$Ð�å�åQÎ(Ñi×NÒAÐ�ß�Ó�é û èAÜ�ß�Ó�ÜYÕãåQÎ�Ï(à{Ü�Ú@b��7�$ÕkÖ7ÜjÖ�ÎAï ó Û�ÎÖ�Ñ�Ü�ß�Õ�à·Ö�à|ÒAßeÑ�Ð�Ú|ÎGÕ®Ü�Ñ�ÎYÜ�Õµæ¶Ò�Ú{Ú{Òjô)Õ�a

� ó Û�Î�Ï7Û�ÎGÏ7ë�Î�Ñ�à|çAß�Ò�Ñ�Î�ÕIîjÜ�Ñ�à�Ü�×�Ú{Î�ÕIà{ß�Ö�Û�Î b5�����ÕãÖ�Ü�Ö�Î�ï

� ó Û�Î�Ï7Û�Î�Ï7ëAÎ(Ñ�Î�Ô�à·Ö7Õ1Ü�ßÇÎ�Ñ�Ñ�Ò�Ñ à·æ4ÜEîjÜ�Ñ�à{Ü�×�Ú{Î�à{ߧÖ�Û�Î�_ �� �a;�Nè�ana;� � �9èQÒ�Ñ ��ana�� � �&Ñ�ÎGÜ�Ï7Û�ÎGÕ�Ü�Ö�Ñ�Ð�ÕãÖãâà|ß�ç�Õ�à{ß�ë9ï

� ÍUà{ç�ß�ÎGÓ�à|ß]Ö�Î(ç�Î�Ñ�ÕiÑ�ÎGÜ�Ó�æ¶Ñ�Ò�Ô#ß�Î(Ökô4ÒAÑ�ë�Ó�ÜjÖ7Ü�èUÏ=ÒAå�à|ÎGÓæ¶Ñ�ÒAÔXÖ�Û�εÐ�Õ�Î(ÑGèjÒ�Ñ÷æ¶Ñ�Ò�Ô Õ�Ø£ÕkÖ�Î(Ô Ï(Ü�Ú|Ú�Õ�Ü�Ñ�Îiå�Ú�Ü�Ï(Î�ÓYà{ßÖ�Û�Î �P_� �� �a��¹ÕãÖ�Ü�Ö�Î�s]Ð�ß�Õ�à{ç�ß�ÎGÓ�à{ß]Ö�Î�ç�Î(Ñ7Õ�Ü�Ñ�Îqå�Ú�Ü�Ï=ÎGÓà|ß³Ö�Û�Î ��a(a;� � �eÕkÖ7ÜjÖ�Î�ï

� ð)ßbÐ�å�åQÎ(Ñ�â�×QÒ�Ð�ßNÓ­Ï7Û�Î�Ï7ëÉÒAßÞÜ �_� �� �a;�&îjÜ�Ñ�à�Ü�×�Ú{Îå�Ú�Ü�Ï=ÎGÕqà·Ö)à{ß³Ö�Û�Î ��ana;� ��eÕãÖ�Ü�Ö�ÎAï

� ð Ú|ÒjôµÎ(Ñ�â�×QÒ�Ð�ß�Ó Ï7Û�ÎGÏ7ëXÒAß�Ü �_ �� �a;�-îjÜ�Ñ�à�Ü�×�Ú{Îå�Ú�Ü�Ï=ÎGÕqà·Ö)à{ß³Ö�Û�Î ��ana;� �;�eÕãÖ�Ü�Ö�ÎAï

� ð)ßÙÐ�å�åQÎ(Ñ�â�×NÒAÐ�ß�ÓíÏ7Û�Î�Ï7ë­ÒAßíÜ���ana;� � �­îjÜ�Ñ�à�Ü�×�Ú{Îå�Ú�Ü�Ï=ÎGÕqà·Ö)à{ß³Ö�Û�Îcb����eÕkÖ7ÜjÖ�Î�ï

� ð Ú{Òjô4Î�Ñãâ�×NÒAÐ�ß�Ó#Ï7Û�Î�Ï7ë Ò�ß Ü ��ana�� � ��îjÜ�Ñ�à�Ü�×�Ú{Îå�Ú�Ü�Ï=ÎGÕqà·Ö)à{ß³Ö�Û�Îcb����eÕkÖ7ÜjÖ�Î�ï

� ð)ß Î@^]Ð�Ü�Ú|à|ÖkØ Ö�Î�ÕãÖÞÒ�ß ÜXîLÜ�Ñ�à�Ü�×�Ú|ÎÙà{ß Ü�ßUØ ÕkÖ7ÜjÖ�Îå�Ú�Ü�Ï=ÎGÕqà·Ö)à{ß³Ö�Û�Îcb����eÕkÖ7ÜjÖ�Î�ï

V�à{ç�Ð�Ñ�Î0wäç�à{î�Î�ÕÂÜXÖ�Î)UUÖ�ÐNÜ�Ú.Ñ�Î(å�Ñ�Î�Õ�Î(ß]Ö7ÜjÖ�à{Ò�ß#Ò�æ³Ö�Û�ÎÑ7Ü�ß�ç�Î)Ï7Û�ÎGÏ7ë�Î(ѵÕkÖ7ÜjÖ�Î�Ô�Ü�Ï7Û�à{ß�ÎAïFb�Öqà{Õ4ô®Ñ�à·Ö�Ö�Î(ßeà|ß ���(����� è£ÜÛ�à|çAÛ£â�Ú{Î(îAÎ(Ú�è÷ÕkÖ7ÜjÖ�Î=â�Ô�ÜAÏ7Û�à{ß�Î�Ú�Ü�ß�ç�Ð�Ü�ç�Î�ý þ���ï Ð�Ñ�à{ß�ç&Ï=ÒAÔ$âå�à|Ú�ÜjÖ�à|ÒAß�Ö�Û�Î�Î�UUÖ�Î(ßNÕãà{Ò�ß&à�Õ�Ó£ØUß�Ü�Ô�à{Ï�Ü�Ú{Ú|سÚ|à{ß�ëAÎ�Ó�à{ßAÖ�Ò.Ò�Ð�ÑÎ�UUÖ�Î(ßNÕãà{×�Ú{ÎzÏ=ÒAÔ�å�à|Ú{Î(ÑGè � / �(� ø ×NÜ�Õ�Î�Ó ÒAß Ö�Û�Î <���ò / �(�

Page 5: Using Programmer-Written Compiler Extensions to Catch Security

Ï=ÒAÔ�å�à|Ú{Î(Ñ û ï4ð®æ¤Ö�Î�Ñ � / �(�YÖ�Ñ�Ü�ß�Õ�Ú{Ü�Ö�Î�ÕqÎGÜ�Ï7Û³à|ß�å�УÖ)æ¶Ð�ßNÏ�Ö�à{Ò�ßà{ßAÖ�ÒYà·Ö7Õ�à{ß]Ö�Î(Ñ�ß�Ü�Ú£Ñ�Î�å�Ñ�ÎGÕãÎ�ß]Ö�ÜjÖ�à|ÒAß÷èjÖ�Û�Î�Ï7Û�ÎGÏ7ë�Î(ÑIà�ÕiÜ�å�å�Ú{à|ÎGÓÓ£Òjô®ßEÎ(î�Î�Ñ�Ø�åQÒAÕ�Õ�à|×�Ú{ιÎ)U£Î�Ï(УÖ�à{Ò�ßEå�ÜjÖ�ÛEà{ß³Ö�Û�Ü�Öqæ¶Ð�ß�Ï�Ö�à|ÒAß÷ïó Ø]å�à{Ï�Ü�Ú{Ú|ØAèGÎ�UUÖ�Î(ßNÕãà{Ò�ß�Õ�Ð�Õ�Îiå�Ü�ÖãÖ�Î(Ñ�ß�Õ÷Ö�Ò1Õ�Î�Ü�Ñ�Ï7Û¹æ¶ÒAÑ�à{ߣâ

Ö�Î�Ñ�ÎGÕkÖ�à|ß�ç�ÕãÒAÐ�Ñ�Ï(Î)Ï=Ò£Ó£Îqæ¶ÎGÜjÖ�Ð�Ñ�ÎGÕ(èAô®Û�à{Ï7Û�èAô®Û�Î�ß�Ô�ÜjÖ�Ï7Û�Î�ÓvèÏ(Ü�Ð�Õ�ιÖ�Ñ7Ü�ß�Õ�à·Ö�à|ÒAß�Õ®×QÎ=ÖkôµÎ(Î�ßÇÕkÖ7ÜjÖ�Î�Õ�ï ó Û�Î�Ö�Ñ7Ü�ß�Õ�à|Ö�à{Ò�ß&Ï(Ü�ßÒ�å�Ö�à{Ò�ß�Ü�Ú|Ú{Ø�çAÒYÖ�Ò$Ü�ß�Î�ô±ÕkÖ7ÜjÖ�Î�Ò�ѵÏ(Ü�Ú|ÚQà|ß]Ö�Ò ú Ï=Ò£Ó£ÎAï � ÜjÖãâÖ�Î�Ñ�ßNÕ Ü�Ñ�Î�ô®Ñ�à|ÖãÖ�Î(ßÇà{ßzÜ�ßÇÎ�U]Ö�Î(ß�Ó�Î�Ó§îAÎ(Ñ7Õãà{Ò�ß&Ò�æ�Ö�Û�Î�×�ÜAÕãÎÚ�Ü�ß�çAÐ�Ü�çAÎ ø�úqû è�Ü�ß�ÓbÏ(Ü�ßÞÔ�ÜjÖ7Ï7ÛíÜ�Ú|Ô�ÒAÕãÖ�Ü�Ñ�×�à·Ö�Ñ�Ü�Ñ�ØÀÚ�Ü�ߣâç�ÐNÜ�ç�ÎÀÏ=ÒAß�ÕkÖ�Ñ�ÐNÏ�Ö�Õ�Õ�Ð�Ï7ÛCÜAÕ�Ó£Î�Ï(Ú{Ü�Ñ�Ü�Ö�à{Ò�ß�Õ�è)Î)U£å�Ñ�Î�Õ�Õ�à|ÒAß�Õ(èÜ�ßNÓbÕãÖ�Ü�Ö�Î(Ô�Î�ßAÖ7Õ(ï-ÍUÖ�ÜjÖ�Î�Õ.Ï�Ü�ßí×NÎ&çAÚ|ÒA×�Ü�Ú ø ÕãÐNÏ7ÛíÜAÕ$Ö�Û�Îb�_�^ �.ÕãÖ�Ü�Ö�Î û ÒAÑ®×NÒAÐ�ß�ÓEÖ�Ò�îjÜ�Ñ�à{Ü�×�Ú{Î�ÕqÒ�ÑqÎ�UUå�Ñ�ÎGÕ�Õ�à|ÒAß�Õ�ï

bPß Ö�Û�ÎíÑ�Ü�ß�ç�ÎÞÏ7Û�Î�Ï7ë�Î�Ñ�è�Î�ÜAÏ7Û Ô�ÜjÖ�Ï7Û�Ò�æEÜCÏ(Ü�Ú|Ú$Ö�Ò�����n� \(^��` ��b�a�^Cà{ß Ö�Û�Î b�_�^;�XÕkÖ7ÜjÖ�έô®à|Ú{Ú�å�Ú�Ü�Ï=έÖ�Û�ÎÏ(Ü�Ú|Ú;� Õ�õ�Ñ�ÕãÖ�Ü�Ñ�ç�Ð�Ô�Î�ßAÖIà{ß�Ö�Û�Î �_ �� �a;�1ÕãÖ�Ü�Ö�ήÜ�ßNÓ�Ö�Ñ�ÜAÏ7ëYà·ÖÕ�Î(å�Ü�Ñ�Ü�Ö�Î(Ú{Ø�ï�ð®æ¤Ö�Î(Ñ4ÕãÖ�Ü�ÑãÖ�à|ß�ç�ܹîLÜ�Ñ�à�Ü�×�Ú|ÎAèjÖ�Û�Î Ï7Û�Î�Ï7ëAÎ(Ñ�Ð�Õ�Î�Õå�Ü�ÖãÖ�Î�Ñ�ßNÕIÖ�Ò�Ï7Û�ÎGÏ7ëYæ¶Ò�ÑiôµÜLØ£Õ�Ö�Û�Ü�Ö�Ö�Û�ήîLÜ�Ñ�à�Ü�×�Ú|Î)Ï�Ü�ß�Ö�Ñ7Ü�ߣâÕ�à·Ö�à|ÒAßEÒAУ֮Ò�æ�Ö�Û�Î �_ �� �a;��ÕãÖ�Ü�Ö�Î�ï'b�Ö)Õ�Î=Ö7ÕµÖ�Û�ÎYÕãÖ�ÜjÖ�ιÒ�æ�ÜîjÜ�Ñ�à{Ü�×�Ú{Î�Üjæ¤Ö�Î�Ñ�Üq×QÒ�Ð�ß�Ó�Õ�Ï7Û�ÎGÏ7ë Ó£àP�QÎ�Ñ�Î�ß]Ö�Ú{Ø1Ó£Î�åNÎ�ß�Ó£à{ß�ç)ÒAßô®Û�Î(Ö�Û�Î�Ñ�Ö�Û�Î$Ï7Û�Î�Ï7ë�ÕãÐ�Ï�Ï=Î�Î�Ó£ÎGÓ ø Ð�Õ�à{ß�ç.Ö�Û�ÎzÝ��n^���a��#: :;:kéß�Ò�Ö�ÜjÖ�à|ÒAß û ÒAÑvæoÜ�à{Ú|ÎGÓ ø Ð�Õ�à{ß�ç®Ö�Û�Î�Ý \P_�b7a��#: : :Péeß�Ò�Ö7ÜjÖ�à|ÒAß û ïV�ÒAÑeÎ�U£Ü�Ô�å�Ú|ÎAè�Ü­îjÜ�Ñ�à�Ü�×�Ú{Χà{ß Ö�Û�Î �_� �� �a;�­ÕãÖ�ÜjÖ�ΧÖ�Û�ÜjÖÛ�ÜAÕ®Ü�Ú|ÒjôµÎ(Ñ�â�×QÒ�Ð�ß�ÓeÏ7Û�ÎGÏ7ëeÓ£ÒAß�Î ø Õ�åNÎGÏ=à|õ�Î�Ó³îUà�Ü$Ö�Û�ÎYå�Ü�ÖãâÖ�Î�Ñ�ßÀÝ$��� �£é û ô®à{Ú|Ú�×Nήå�Ð�Ö�à|ß�Ö�Û�Î ��ana;� �;� ø ß�Î�Î�Ó�Ð�å�åQÎ(Ñ×QÒ�Ð�ß�Ó û ÕkÖ7ÜjÖ�ήÒ�ß�Ö�Û�ÎqÖ�Ñ�Ð�Î)å�Ü�Ö�Û�Ò�æ9Ö�Û�Î�Ï7Û�Î�Ï7ë�Ü�ß�Ó$à{ß�Ö�Û�Î��ana�� � � ø ß�Î(Î�ÓzÚ{Òjô4Î�Ñ ×QÒ�Ð�ßNÓ û Ò�ßÇÖ�Û�Î$æoÜ�Ú�Õ�Î$åNÜjÖ�Û�ï ó Û�ÎÏ7Û�ÎGÏ7ë�Î(ÑEÕkÖ�Ò�å�Õeæ¶Ò�Ú{Ú|Òjô®à{ß�çÞÜÞîjÜ�Ñ�à{Ü�×�Ú|ÎÇÒ�ß�Ï(ÎÇà|ÖEÛ�ÜAÕEÕ�Î(Î�ß×QÒ�Ö�Û&Ü�ß³Ð�å�åNÎ�ÑãâµÜ�ß�Ó³Ú{Òjô4Î�Ñãâ�×NÒAÐ�ß�ÓEÏ7Û�Î�Ï7ë�æ¶ÒAÑqÖ�Û�Ü�Ö�îjÜ�Ñ�à·âÜ�×�Ú|ÎAï

]®Î(Ö�Ü�Ñ�ç�Î(ÖãÖ�à|ß�çbß�Ò�ß�â�ß�Î(Ökô4ÒAÑ�ëÙÕ�Ò�Ð�Ñ7Ï=ÎGÕEÜ�ß�Ó-Õ�à|ß�ëUÕ³Ñ�Î=â^]Ð�à{Ñ�ÎGÕIç�à{î]à{ß�çYÜ1Ñ�ÒAУÖ�à{ß�εÖ�ÛNÜjÖ�à{ß�Ó£à�Ï(ÜjÖ�Î�Õ�ô®Û�Î=Ö�Û�Î(Ñ�Ü1ç�à{î�Î�ßß�Ü�Ô$Îeà{Õ�ÜÇÕãØ£ÕãÖ�Î(Ô Ï(Ü�Ú|Ú�èIÜ�ß�ÓzÖkôµÒ�Ö�Î)UUÖ�õ�Ú|ÎGÕ(è�Ú{à{ÕãÖ�à{ß�çÇÜ�Ú|ÚÐ�ß]Ö�Ñ�Ð�ÕãÖ�ÎGÓ§ÕãÒAÐ�Ñ7Ï=Î�Õ Ü�ß�Ó&Ö�Ñ�Ð�ÕkÖ�à|ß�çEÕ�à|ß�ë£Õ�ï V�à{ç�Ð�Ñ�Îxy.ç�à{î�Î�ÕÖ�Û�Î)Ï=Ò�Ô�å�Ú{Î=Ö�ήÕãåQÎ�Ï(à·õNÏ�ÜjÖ�à|ÒAß�æ¶ÒAÑIÖ�Û�Î [ ÍPÙÑ7Ü�ß�çAεÏ7Û�Î�Ï7ë�Î�Ñ�ïb�Ö4ÐNÕãÎGÕ�Ö�Û�Î Ó£Î(æoÜ�Ð�Ú|ÖµÕ�åNÎGÏ=à|õNÏ(Ü�Ö�à{Ò�ß�æ¶ÒAÑ4Õ�ØUÕãÖ�Î�Ô#Ï�Ü�Ú{Ú{Õ ø Ö�Û�ÜjÖÖ�Û�Î(ØÂ×QÎ(ç�à{ßÞô®à|Ö�Û�ÝCb �+b é û ï ó ÛUÐ�Õ�à·Ö�ß�Î�Î�Ó�Õ$Ò�ß�Ú|ØÂܧÚ{à�ÕkÖÒ�æqÕãÒAÐ�Ñ7Ï=Î�Õ ø k û Ü�ßNÓzÕ�à|ß�ëUÕ ø � u û ï �÷à{ßUÐ UÇà�Õ¹Ò�ß�Ú{ØÇÕ�Ú|à{ç�Û]Ö�Ú{ØÔ�Ò�Ñ�ιô4ÒAÑ�ëSa�ß�à|ß�Î�ÕãÒAÐ�Ñ�Ï(Î�ÕqÜ�ßNÓeõ�æ¤Ö�Î(Î�ß&Õãà{ß�ë£Õ(ï

ó Û�Î æ¶Ò�Ú{Ú|Òjô®à{ß�ç$ÕãÎGÏ�Ö�à{Ò�ßNÕ4Ó£à�Õ�Ï=Ð�Õ�ÕqÕãÒAÔ$Î Ò�æ÷Ö�Û�ιÏ=Ñ�Ð�Ï=à�Ü�ÚÜ�Õ�åQÎ�Ï�Ö7Õ®Ò�æ�Ö�Û�Î�Ï7Û�Î�Ï7ëAÎ(Ñqà|ß�Ô�Ò�Ñ�ÎYÓ£Î=Ö7Ü�à{Ú�aià|ߣæ¶Î�Ñ�Ñ�à{ß�ç�Ô$à�Õ�Õkâà{ß�çYÜ�Ï�Ö�à|ÒAß�Õ ø �ou û è�Ü�ß�Ü�Ú|Ø£Õ�à{Õ�à�Õ�Õ�Ð�ÎGÕ ø � w û èAÏ7Û�Î�Ï7ëUà{ß�ç Õ�Ð�×£Ö�Ú|ÎÑ�Ð�Ú|ÎGÕ ø � y û Ü�ß�Ó³Ñ�ÎGÕãÐ�Ú·Ö7Õ ø �]q û ï

� � ��'(�(��� Ë �����������2®�

ðíô4ÎGÜ�ëUß�ÎGÕ�Õ�Ò�æ�Ö�Ñ7Ü�Ó£à|Ö�à{Ò�ß�Ü�Ú£Ï7Û�Î�Ï7ëUà{ß�ç1Ü�å�å�Ñ�ÒAÜAÏ7Û�Î�Õ�à{Õ�Ö�Û�ÜjÖÖ�Û�Î(ØeÑ�Î(Ú{ØeÒAß&ÕãÒAÔ$Î1æ¶ÒAÑ�Ô/Ò�æ�ÕãåQÎ�Ï(à·õNÏ�ÜjÖ�à|ÒAßEÒAÑ)Û�Ü�Ñ7Ó£ô®à{Ñ�ÎGÓëUß�Òjô®Ú{Î�Ó£çAÎ Ö�Ò�Î(ß�Ï(Ò£Ó£Î�Ï7Û�Î�Ï7ëUà{ß�ç�å�Ñ�Ò�åQÎ(Ñ�Ö�à{Î�Õ�ï V�ÒAÑ®Î)U�Ü�Ô$âå�Ú{Î�è]Ö�Ò�Ñ�Ü�ß�ç�Î Ï7Û�Î�Ï7ë$à|ß�å�УÖ�Õ�è£Ü�ÕãÖ�Ñ�Ò�ß�çAÚ|Ø�ÖkØUåNÎGÓ�Ú�Ü�ß�çAÐ�Ü�çAÎÔ�à|çAÛ]Ö)Ñ�Î^AÐ�à|Ñ�Î1Ö�Û�Ü�Ö)Ö�Û�ÎYå�Ñ�ÒAç�Ñ7Ü�Ô�Ô�Î(ÑqÔ�Ü�Ñ�ëeÜ�Ú{Ú�Ó�Ü�Ö�Ü�ÜjÖÜ�Ú{Ú�ëAÎ(Ñ�ß�Î(ÚNÎ(ß]Ö�Ñ�Ø$åNÒAà|ß]Ö�Õ4ô®à|Ö�ÛeÜÇÝkÖ�Ü�à|ß]Ö�Î�Ó�é1ÖkØUåQÎ ^]Ð�Ü�Ú{à|õ�Î(ÑÜ�ßNÓ&Ü�Ú{Ú�Õãà{ß�ë£Õ®ô®à|Ö�ÛÇÜÉÝ�ß�Ò�Ö�â\Ö7Ü�à{ß]Ö�Î�Ó�éB^]Ð�Ü�Ú|à|õ�Î�Ñ�ï bPߧÜ�Ó�Ó�à·âÖ�à{Ò�ß³Ö�Ò�×NÎ�à|ß�çeåNÒ�Ö�Î(ß]Ö�à{Ü�Ú|Ú{ØEÕãÖ�Ñ�Î(ßUÐ�ÒAÐ�Õ®Ü�ß�Ó³à{ßUîLÜAÕãà{î�ÎAè£Ò�ß�Î

"<8[�7��D ? !�, �107!7�� ���������/�� � ������� ��������$7/�!7" #�"�!��j�CD 5���.�. !���D�"+���!7��/ ��D�67,�!,4�5�� 6@=xB@= /�!�D�M ���Q8n��.��10[��D 6 !,4�5 ���!7��/ ��D�67,�5�- �%D . !��[ @M ���Q8n��.��10[��D 6 5�-��CD . !��"C.7��. ! � ! ��/ ��D 6 ,�!,4�5 � 4�M ��� $��CD �F"C.7��. ! . - 4

��� Y�.7����.["�.7��. !�� W���.��10 !7" ��D 6[��-�5 67,�1��7-98n,C#�"�!����� ����/�/ �CD � 5�# .7" 5����7�<8(!�. !�� 4[�CD .7���CD . !��j"C.7��. !@�"�. ����.�*�� ��-�5 67,�1��7-98n,C#�"�!��@2�4@= 6�= /�!�DnE��

N�N R 4���. � �CD . !��M����� ��.��10[-�57!��7��.���-�D�"[��/�/�!�?7��/ -�D #�D�"���1 ! 7��/C#7!7"+�4��T.7� �CD .�!��@= 4��TD !�!��7,�#�$�= 4��TD7!�!��7,�/�$ *� S 4�U�� N�N R�� !����@2�� Z���D ?�!��7-�#�"[�CD�� !,4�����EM��

��� ��-�5 6 ,�1��7-98(,�#�"�!���2;6@=AB@=F4(E����� ��-�5 6 ,�.7-�,�#�"�!��@2;6�= B@=*4(E��

N�N R ��!�����2�� Z���D�? !��7-�#�"F/�!�D ?�.,0F����?�����EPM!�M��� X��98(!���5���.�. !���D�"�.,0���. 8n��.��30 #�5�57!�� ��$�-�#�D�����v2�#�$nE �CD �[/�-�O !��7��$�-C#�D �j�107! �"(" 2)/�$(E��5���. #�$[N � 4�# 6��$�%� 4�#�N 6��+M5���.[/�$[N � 4[R 6��$�%� 4[R�N 6��+M

��� V7!%8n� �%D��CD ?FY�WF��-�� !@* 8n��.��10F��-�� ! ����.���-�D�"�.,0���.��� ��1�1 !7�C. .7� �CD�. !�� 7���7����$�/�! "+�rL,07!�D7-�.7��.���-�D��� .���#7!�N,4��&# "�.7��.�!('CR+= 17��/�"�!�N,4��&# "�.7��.�! ��R��� "C57!7���C1���!7" O507��.F"�.7��. ! .7- 5�# . 4[�%DF-�D .,0 !��� .���#7! �CD � 17��/�"�!�$ �7�CD��107!7"���!7"C57!7�C.��� ! /�6��4��T.7� �CD .�!���*��� /�-�O !�� $�-�#�D �j�107!7�� *c-�D . 07! .���# !�5���.,0 .,07!���� 7���7����$�/�! D !�!���" ��D�#�5�57!�� $�-�#�D �32�D7!�!�� ,�#�$nEM��� -�D . 07! 17��/�"�!�5���. 0j��. D7!�!���" � /�-�O7!����� 2�D7!�!��7,�/�$(E��cL,07! -�. 07!�� ��#7/�!7" ����!["��<8P��/������/�$[N�N R .���#7!�N 4��TD7!�!��7,�#�$�=A17��/�"�!�N,4�� D7!�!��7,�/�$� #�$[N�N R .���#7!�N 4��TD7!�!��7,�/�$�=A17��/�"�!�N,4�� D7!�!��7,C#�$��� 4 N�N�6'� N�N�R�.���#7!�N,4��)"�. -�5�= 17��/ "�!�N,4���. � �CD . !����� 4$��N�6'� N�N�R�.���#7!�N,4���.7���CD . !���=A1 ��/ "�!�N 4��)"�.7-C5M4�� D7!�!��7,C#�$ *

/�$ N�N�R�.���#7!�N,4��TD7!�!��7,�#�$@= 17��/ "�!�N,4@�)"�.7-�5� #�$[N�N R .���#7!�N 4��)"�.7-C5�= 17��/ "�!�N,4��TD7!�!��7,�#�$��� 4 N�N�6'� N�N�R�.���#7!�N,4��)"�. -�5�= 17��/ "�!�N,4��TD !�!��7,�#�$��� 4$��N�6'� N�N�R�.���#7!�N,4��TD7!�!��7,�#�$@=A1 ��/ "�!�N 4��)"�.7-C5M4�� D7!�!��7,�/�$ */C$[N�N R�.���#7!�N,4@�)"�.7-�5@=A1 ��/ "�!�N 4��TD7!�!��7,�/�$� #�$[N�N R .���#7!�N 4��TD7!�!��7,�/�$�=A17��/�"�!�N,4���"�.7-�5��� 4 N�N�6'� N�N�R�.���#7!�N,4��)"�. -�5�= 17��/ "�!�N,4��TD !�!��7,�/C$��� 4$��N�6'� N�N�R�.���#7!�N,4��TD7!�!��7,�/�$@=A1 ��/ "�!�N 4��)"�.7-C5M�

V�à{ç�Ð�Ñ�Î w a�Í]Ö�Ñ�à{å�åQÎ�Ó$Ó£Òjô®ß�îAÎ(Ñ7Õãà{Ò�ß�Ò�æ�Ö�Û�ÎqÑ�Ü�ß�ç�εÏ7Û�Î�Ï7ëAÎ(ÑaôqÜ�Ñ�ß�Õ1ô®Û�Î�ßzÐ�ßNÏ7Û�Î�Ï7ëAÎ�ÓÀÓ�ÜjÖ7ÜEÏ(Ò�å�à{Î�Ózæ¶Ñ�Ò�Ô Ö�Û�Î�Ð�ÕãÎ�ÑYà{ÕÐNÕãÎGÓíÜAÕ.Ü�ß Ü�Ñ�Ñ7ÜLØÂà|ßNÓ£Î)UíÒ�Ñ.Ú{Î(ß�ç�Ö�Û Ü�Ñ�ç�Ð�Ô$Î�ß]Ö�ïCÍUÒAÔ�ÎÔ�à�Õ�Õ�à{ß�ç$Ï7Û�Î�Ï7ë�Î�ѵæ¶Î�ÜjÖ�Ð�Ñ�Î�Õ@a�Ö�Û�ÎYÑ�Ð�Ú|ÎGÕ4æ¶Ò�Ñ®Ð�ß�Õ�à{ç�ß�ÎGÓeîjÜ�Ñ�à|âÜ�×�Ú{Î�Õ�è�Ö�Û�Îíæ¶Ð�Ú{ÚeÕãÎ(ÖÂÒ�æEÕ�à|ß�ëUÕÂÜ�ß�Ó#ÕãÒAÐ�Ñ�Ï(Î�Õ�è�à{ß�Û�Î�Ñ�à|Ö�ÎGÓÕãÖ�Ü�Ö�Î ø �lwNï k û è�Ü�ß�ÓÙÖ�Û�ÎÇ×QÒ�à{Ú|Î�Ñ�å�Ú�ÜjÖ�Χß�Î�Î�Ó£ÎGÓÙæ¶Ò�ѳà|ß]Ö�Î(Ñ�âå�Ñ�Ò£Ï=ÎGÓ£Ð�Ñ7Ü�ÚvÜ�ßNÜ�Ú{ØUÕ�à�Õ ø ��w�ï u û

Page 6: Using Programmer-Written Compiler Extensions to Catch Security

�������j��� � �>����� ���� � � ���-�5 6��CD�* '��-�5 6��CD�"�.���* '

�������������� ����������������-C5 6��CD *;���-C5 67-�# .@*����-C5 6��CD�"C.���*����-C5 67-�# .7"�.���*����-C5 6�"�.��@*��$���-�5 6�*��$���-�5 6�$ *;�(��-�5 6�*��$���-�5 6�O *;�8(!98P�C5 6�*;���-C5 6�"�.��@*��1���/�/�O *��8n��/�/�- �+*�&

V�à|çAÐ�Ñ�Î y a ú ÒAÔ�å�Ú|Î(Ö�ÎÀÏ7Û�Î�Ï7ëAÎ(ÑeÕ�åNÎGÏ=à|õNÏ(Ü�Ö�à{Ò�ß æ¶ÒAÑ [ ÍP�ïó ôµÒeõ�Ú{Î�Õ¹Ú{à�ÕkÖ ø � û Ö�Û�Î�ÖkôµÒ [ Í ÕãÒAÐ�Ñ�Ï(Î�æ¶Ð�ß�Ï�Ö�à|ÒAß�Õ�Ü�ßNÓø k û Ö�Û�ÎYÖ�Û�à{Ñ�Ö�Î(Î�ß [ ÍP Õ�à|ß�ëeæ¶Ð�ßNÏ�Ö�à{Ò�ßNÕ(ï ó Û�ÎYõ�Ú{ÎYæ¶ÒAÑ�Ô�ÜjÖà�Õ�a \��n����� 7��� ��_�`�a������[_�^ / �7`�a�� � �n�7` ��a�^9ï9ð­Ö�Ñ�à|îUà�Ü�ÚÎ�Ó�à·Ö�ÜAÓ�Ó�Õ®Ü$ß�Î(ôäÕ�Ò�Ð�Ñ7Ï=Î1Ò�Ñ)Õ�à|ß�ëQï

Ñ�Î�Ü�ÚQÓ�Ü�ß�ç�Î(Ñiô®à·Ö�ÛEÕ�Ð�Ï7Û.Ü�ß.Ü�å�å�Ñ�ÒAÜ�Ï7Û�à�Õ�Ö�Û�ÜjÖµà·ÖqÓ£ÒUÎ�Õ4ß�Ò�ÖÛ�ÜLîAÎEÜÀÕ�Ü�æ¶Î=ÖkØÂß�Î(Ö$Ö�ÒÀÏ�ÜjÖ7Ï7ÛÞÒ�Ô�à�Õ�Õ�à{Ò�ß�Õ�ï/b�æ1Üzå�Ü�Ñ7Ü�Ô�Î=âÖ�Î�Ñ à�Õ ß�Ò�Ö¹Ü�ß�ß�Ò�Ö�Ü�Ö�Î�Ó÷èNà|Ö1Ï�Ü�ß�ß�Ò�Ö ×QÎ$Ï7Û�Î�Ï7ë�ÎGÓvï b�æiÜEÕãà{ß�ëà�Õ ß�Ò�Ö�Ü�ß�ß�Ò�Ö�Ü�Ö�ÎGÓ§à|Ö1ô®à{Ú|Ú�×QÎ�Ô�à{Õ�ÕãÎGÓvï�ð#ë�Î�Ø�æ¶Î�Ü�Ö�Ð�Ñ�Î�Ò�æÒ�Ð�Ñ�Ü�å�å�Ñ�Ò]Ü�Ï7ÛÀà{Õ�Ð�Õ�à|ß�çÇÏ=Ò£Ó£Î.×QÎ(ÛNÜLî]à{Ò�Ñ�Ö�Ò§à{ߣæ¶Î(Ñ�Ï7Û�ÎGÏ7ëAâà{ß�ç�å�Ñ�ÒAåNÎ�ÑãÖ�à|ÎGÕ(è9Ö�Û�Î(Ñ�Î(×UاÜ�Ú|Ú{Òjô®à|ß�çEÐ�Õ1Ö�Ò&Ü�УÖ�Ò�Ô�ÜjÖ�à{Ï�Ü�Ú{Ú|ØÏ=Ñ�ÒAÕ�Õãâ�Ï7Û�ÎGÏ7ëYÖ�Û�Î(Ô#æ¶Ò�ѵÏ=Ò�Ñ�Ñ�Î�Ï�Ö�ß�Î�Õ�Õ�Ü�ßNÓ.Ï=ÒAÔ$å�Ú|Î(Ö�Î(ß�Î�Õ�Õ�Ò�ÑÎ(îAÎ(ß�Ö�Ò�Î(Ú{à|Ô�à{ß�ÜjÖ�ήÖ�Û�Î(Ô Ü�Ú{Ú�Ö�ÒAç�Î(Ö�Û�Î�Ñ�ï ó Û�à�ÕiÕ�Î�Ï�Ö�à|ÒAß.Ó£à�ÕkâÏ=ÐNÕ�Õ�Î�Õ�Û�Òjô/ô4Î�Ð�Õ�Î&à{ߣæ¶Î(Ñ�Î(ß�Ï(γÖ�Ò­Ó£Î(Ö�Î�Ï=Ö@a ø � û Ô�à{Õ�Õ�à|ß�çÕ�Ò�Ð�Ñ7Ï=ÎGÕ(è ø k û Ô�à{Õ�Õ�à|ß�ç&Õ�à|ß�ëUÕ�è�Ü�ß�Ó ø u û ô®Û�Î=Ö�Û�Î(ÑYß�Î(Ökô4ÒAÑ�ëå�ÜAÏ7ë�Î=Ö7Õ�Ü�Ñ�Î4à|ßNÏ=Ò�Ô�à{ß�ç ø Ð�ß]Ö�Ñ�Ð�ÕãÖ�ÎGÓ û Ò�ÑIÒ�УÖ�ç�ÒAà|ß�ç ø Ô�ÒAÕãÖ�Ú{ØÖ�Ñ�Ð�ÕãÖ�ÎGÓ û ï

��� � !#"%$�&(')& *,+.-,*0/�$1-324/45�67$8/�90:;2<6�-,$1=�"�2

ü ×UîUà|ÒAÐ�ÕãÚ{Ø�è÷Ü�ßzÐ�ß�Ï7Û�Î�Ï7ëAÎ�ÓvèvÐ�ßAÖ�Ñ�ÐNÕkÖ�Î�ÓÀîjÜ�Ú{Ð�Î�Ï(Ü�ßÀÏ(Ü�Ð�ÕãÎÎ)U�Ï(à·Ö�à|ß�çÉÖ�Ñ�ÒAÐ�×�Ú{Î�ïäð å�Ñ�Ò�×�Ú{Î(Ôsô®à·Ö�Û ü ÍíÏ=ңӣΧà�Õ�Ö�Û�ÜjÖÔ�Ü�ßUاÐ�ß]Ö�Ñ�Ð�ÕãÖ�ÎGÓÉîjÜ�Ú{Ð�Î�ÕYÓ£Ò&ß�Ò�Ö�Ï=ÒAÔ�Î�æ¶Ñ�ÒAÔ Ð�ß]Ö�Ñ�Ð�ÕãÖ�ÎGÓÕ�Ò�Ð�Ñ7Ï=ÎGÕ�à{ßbÜÀÕkÖ�Ñ�Ü�à|çAÛ]Öãæ¶Ò�Ñ�ôqÜ�Ñ7Ó ø Ü�ß�Ü�Ú|ØUáGÜ�×�Ú{Î û ôµÜLØAïÉð ÓUâÓ£à|Ö�à{Ò�ß�Ü�Ú|Ú{اÖ�Û�Î(Ñ�ÎeÜ�Ñ�Î�Ô�Ü�ßUØzÕ�Ò�Ð�Ñ�Ï(Î�ÕYÒ�æqÕ�Ð�Ï7ÛÂÐ�ß]Ö�Ñ�Ð�ÕãÖ�ÎGÓîjÜ�Ú{Ð�Î�Õ�è£Ô�Ü�ëUà{ß�ç�à·Ö)ÎGÜ�Õ�Ø�Ö�Ò$æ¶Ò�Ñ�ç�Î(Ö®Ò�ß�ÎAïöÀÎ1ôµÒ�Ð�Ú{ÓeÚ|à{ë�Î Ö�Ò�Ï(Ü�Ö�Ï7Û³ÕãÐ�Ï7ÛEÐ�ß]Ö�Ñ�Ð�ÕãÖ�Î�ÓEà{ß�å�УÖGï�özÎ

Ï(Ü�ß³Ó�Ò.ÕãÒ�×UØeÎ�UUå�Ú|ÒAà·Ö�à|ß�ç$Ö�Û�ιæoÜ�Ï=Ö®Ö�Û�Ü�Ö�Ï=Ò£Ó£ÎYÒ�æ¤Ö�Î(ß�Ð�Õ�Î�ÕÐ�ß]Ö�Ñ�Ð�ÕãÖ�ÎGÓ&à|ß�å�Уֹà|ßÇÕãÖkØUÚ|à{á(ÎGÓ&ôqÜLØUÕ�ï ó ÛUÐ�Õ�è9Ü.îLÜ�Ú|Ð�Î�Ô�Üjâß�à{å�Ð�Ú�ÜjÖ�Î�Ó�à{ßeÕ�Ð�Ï7Û�ôµÜLØ£Õ�à{Ô�å�Ú{à|ÎGÕ4ÜY×QÎ(Ú{à{Î=ævÖ�ÛNÜjÖiÖ�Û�Î�îjÜ�Ú|Ð�Îà�Õ.Ó�Ü�ß�ç�Î(Ñ�Ò�ÐNÕ(ï±öÀÎÇÏ�Ü�ßíÖ�Û�Î�ß±Ï7Û�Î�Ï7ë­Ö�Û�à�Õ.îjÜ�Ú{Ð�ΧÜAÕ�ô4ÎôµÒ�Ð�Ú�Ó�îjÜ�Ú|Ð�ÎGÕIå�Ñ�ÒUÓ�Ð�Ï=ÎGÓ�×UØ�ëUß�Òjô®ß�ÕãÒAÐ�Ñ7Ï=Î�Õ�ï ø özÎ)Ï(Ò�Ð�Ú�Óvè×�УÖ$Ó£Ò�ß�Ò�ÖGè�Ü�Ú�Õ�Ò XQÜ�ç³Ö�Û�Îeå�Ñ�Ò£Ó£ÐNÏ=Î(ÑYÒ�æ4Ö�Û�Î�îjÜ�Ú{Ð�Î.Ü�ÕYÜåQÒ�Ö�Î�ß]Ö�à�Ü�Ú{Ú|Ø.Ô�à�Õ�Õ�à{ß�ç.ÕãÒAÐ�Ñ7Ï=Î�ï û

� � �����@�?> �����7�� !���"���. ! /�!�550�-�D 6 � � 4A@�����*)� 4A@ , ��- ��.�/0�������"�! 6�B4C ��L�K�,6%X�6�L7,�LED�X�G *��-�5 67,�1��7-98n,C#�"�!��@2�:�.�� =Q����?@=A"���B ! -�1�2;.��7E�EPM� !�.� 7��/ N � 4A@�, �CD���. ,�.7-�D7!+2(@+=A:�.��7EM$ � ! � �M

����"�! 6�B4C ��L�K�,6%X L�G�V �FD�W�,�Y�L�I�V L�*��1 24� 4E@@S;����?�U[N�N�X�J K�KnE

� !�.�# ��Dj��G�XAD�Z�G57�M�����@���R �CD�. !�����-<8zN ����?@M� 4A@@S;����?�U7��R��CD . !��7��-98vN $�-������@M

V�à{ç�Ð�Ñ�Î qZa ó ôµÒ1Î(Ñ�Ñ�ÒAÑ�Õ�Ï(Ü�Ð�ç�Û]ÖI×]Ø�Ö�Ñ7Ü�Ï7ëUà|ß�ç�à{ߣæ¶Î(Ñ�Ñ�ÎGÓ�ÐNÕãÎ�ÑÓ�ÜjÖ�Ü�sQÖ�Û�Î$Î(Ñ�Ñ�ÒAÑ�Õ�Ü�Ú{Ú|Òjô Ü�ßÀÜjÖ�Ö�Ü�Ï7ëAÎ(Ñ®Ö�ÒeÑ�Î�ÜAÓ&Ò�Ñ1Ô�ÒUÓ�à·æ¶ØÜ�Ñ�×�à·Ö�Ñ�Ü�Ñ�ØYëAÎ(Ñ�ß�Î(Ú£Ô�Î(Ô�ÒAÑ�ØAï ó Û�Î)Ï7Û�ÎGÏ7ë�Î�Ñ�à|ߣæ¶Î�Ñ�Õ�Ö�Û�ήîjÜ�Ñ�à|âÜ�×�Ú{Î _�^ / Ï=ÒAß]Ö�Ü�à{ß�Õ4Ð�Õ�Î(Ñ�â�Õ�Ð�å�å�Ú{à{Î�Ó�Ó�Ü�Ö�Ü�×QÎ�Ï�Ü�Ð�Õ�Î�à|ÖµÕ�åQÎ�Ï�âà|õ�ÎGÕ$Ö�Û�Î&Ð�Õ�Î(Ñ.ÜAÓ�Ó£Ñ�Î�Õ�Õ�æ¶Ò�Ñ>�����n� \(^��` ��b�a�^­Ü�ß�ÓÞÖ�ÛUÐ�ÕXQÜ�çAÕ�à·Ö7ÕiÕ�Ð�×�Õ�Î@^]Ð�Î(ß]ÖµÐ�ÕãÎGÕiÜAÕ�Ü�ß�Ð�ßNÏ7Û�Î�Ï7ëAÎ�Ó�Ü�Ñ�Ñ7ÜLØ�à|ßNÓ£Î)UÜAÕµÎ(Ñ�Ñ�ÒAÑ�Õ�ï

ó Û�Î�Ô�ÒAÕãÖ�Î)�9Î�Ï�Ö�à|îAÎEÎ�U�Ü�Ô�å�Ú{ÎEÒ�æ à{ߣæ¶Î(Ñ�Ñ�à{ß�çzÐ�ÕãÎ�Ñ�à|ߣâå�УÖ4Û�ÜAÕi×QÎ(Î�ß.Î)U£å�Ú{Ò�à|Ö�à{ß�ç$Ü�ÕkÖ�Ñ�Ü�ß�ç�Î�×�У֮Ï=Ò�Ô�Ô�Ò�ß�à�Ó£à{Ò�Ôà{ß ü ÍÉÏ=Ò£Ó£ÎHa�îjÜ�Ñ�à{Ü�×�Ú{Î�Õ1Ö�ÛNÜjÖ�Ï�Ü�ß­ÕãÖ�Ò�Ñ�Î�Î(à|Ö�Û�Î�Ñ�Ð�Õ�Î(Ñ�à|ߣâÖ�Î(çAÎ(Ñ7Õ®Ò�Ñ Ð�ÕãÎ�Ñ)åQÒ�à{ßAÖ�Î(Ñ7Õ�Ó£Î�åNÎ�ß�Ó£à{ß�çeÒAߧÏ=ÒAßAÖ�Î)UUÖ�ï ó Û�Î�Õ�ÎîjÜ�Ñ�à�Ü�×�Ú{Î�ÕiÖ�Î�ß�ÓeÖ�Ò�Û�Î�ÜLîUà{Ú|Ø�Ï(Ú|Ð�ÕãÖ�Î�Ñ®Ñ�à{ç�Û]Öqô®Û�Î(Ñ�Î1ô4Î1ß�Î(ÎGÓÖ�Û�Î(Ô a�ÜjÖqà{ßAÖ�Î(Ñ�æoÜ�Ï(Î�×QÒ�Ð�ß�Ó�Ü�Ñ�à|ÎGÕ4ô®Û�Î(Ñ�Î�Ð�Õ�Î(Ñ7ÕiçAà|îAÎ�à{ß�å�УÖÖ�ÒeÖ�Û�Î ü Í9ï ó Û�à�ÕYÕãà|Ö�Ð�Ü�Ö�à{Ò�ßzà{Õ æ¶Ò�Ñ�Ö�Ð�ß�ÜjÖ�Î�è÷Õ�à|ß�Ï(Î$Ö�Û�Î�Ò�å�âÎ�Ñ�Ü�Ö�à{ß�çEÕ�Ø£ÕkÖ�Î(Ô Û�ÜAÕ�îAÎ(Ñ�Ø&Ï=Ú{Î�Ü�ÑGè9Ð�ß�Ü�Ô�×�à{ç�Ð�ÒAÐ�Õ ôµÜLØ£Õ Ò�æÖ�Ñ�ÎGÜjÖ�à|ß�çÇÐ�ÕãÎ�Ñ�åQÒ�à{ß]Ö�Î(Ñ7Õ�ï ó Û�ÎEÔ$Ò]ÕkÖ�Ï=ÒAÔ$Ô�ÒAßÞÕãÐNÏ7ÛÂÐ�ÕkâÜ�ç�Î.à�Õ$å�Ü�Õ�Õ�à|ß�ç§Ö�Û�Î�îjÜ�Ñ�à{Ü�×�Ú{ÎeÜ�Õ�Ö�Û�γÐ�Õ�Î(Ñ�åQÒ�à{ßAÖ�Î(Ñ�Ö�ÒÀÜÑ�Ò�Ð�Ö�à{ß�Î�Ö�Û�ÜjÖ®Ï=ÒAå�à{Î�ÕqÓ�ÜjÖ7Ü�×QÎ=ÖkôµÎ(Î�ß.Ö�Û�ιë�Î(Ñ�ß�Î�ÚQÜ�ß�ÓeÐNÕãÎ�Ñø Î�ï ç�ï{è �����P�� ��zÒ�Ñ �����P�P��� � û ï ó Û�Î.Ð�Õ�Î(Ñ$Ü�Ú{Ô$Ò]ÕkÖ�Ü�Ú|ôqÜLØ£Õà�ÕYÖ�Û�ÎEÕ�Ò�Ð�Ñ�Ï(Î�Ò�æ®Ö�Û�à{Õ�Ü�Ó�Ó£Ñ�Î�Õ�Õ i Ö�Û�ÎEë�Î�Ñ�ß�Î�Ú4Ó£ÒUÎGÕ�ß�Ò�ÖÕ�åQÒ�ß]Ö�Ü�ß�Î(ÒAÐ�ÕãÚ{Ø�Ó£Î�Ï(à{Ó�Î Ö�Ò�Ñ�Î�ÜAÓ.ÒAѵô®Ñ�à|Ö�Î1æ¶Ñ�ÒAÔ Ü�Ñ�×�à|Ö�Ñ7Ü�Ñ�ØÐNÕãÎ�Ñ�Ü�Ó�Ó�Ñ�ÎGÕ�Õ�Î�Õ�ï ó ÛUÐ�Õ�èGôµÎ�ëUß�ÒjôÀÖ�ÛNÜjÖ�Ö�Û�ÎiîjÜ�Ñ�à�Ü�×�Ú{Î�Û�ÒAÚ{Ó£âà{ß�ç&Ö�Û�ÎEÜAÓ�Ó£Ñ�Î�Õ�ÕYô®à{Ú|Úµç�Î�ß�Î(Ñ7Ü�Ú{Ú|ØzÏ=Ò�ß]Ö7Ü�à{ß­Ó�ÜjÖ7Ü�æ¶Ñ�ÒAÔ�Ü�ßÐ�ßAÖ�Ñ�ÐNÕkÖkôµÒ�Ñ�Ö�ÛUØÂÕãÒAÐ�Ñ7Ï=Î�Ü�ß�ÓÞÖ�Û�Ü�ÖeÜ�Ú{ÚqÐ�ÕãÎGÕ�Ò�æ Ö�Û�Î&îjÜ�Ñ�à|âÜ�×�Ú{Î�Ü�Õ1Ü�ßzà|ß]Ö�Î(ç�Î�Ñ1Õ�Û�ÒAÐ�Ú{ÓÇ×NÎ�Ï7Û�ÎGÏ7ë�Î�Ó§ô®à·Ö�Û§Ö�Û�Î�Ñ7Ü�ß�çAÎÏ7Û�Î�Ï7ë�Î�Ñ�ï ó Û�Î�ë�Î�Ø.æ¶Î�Ü�Ö�Ð�Ñ�Î�Ò�æIÖ�Û�à�Õ�à{ߣæ¶Î�Ñ�Î�ß�Ï=Î�à{Õ)Ö�Û�Ü�Ö ôµÎÏ�Ü�ß­ß�Òjô Ï7Û�Î�Ï7ëÀîjÜ�Ñ�à{Ü�×�Ú|ÎGÕ�Ö�Û�ÜjÖ$Ñ�ÎGÏ=Î�à|îAÎeÐ�ß]Ö�Ñ�Ð�ÕãÖkô4ÒAÑãÖ�ÛUØÓ�ÜjÖ�ÜÉà{ß ôqÜLØUÕ.ô4ÎÇÓ�ÒÂß�Ò�ÖeÐ�ß�Ó£Î(Ñ7ÕãÖ�Ü�ßNÓvï ð�Õ³ÕãÛ�Òjô®ßÙà{ßÍ£Î�Ï�Ö�à|ÒAß q�è÷ÕãÐNÏ7Ûzà{ߣæ¶Î(Ñ�Î(ßNÏ=Î�Ü�Ú{Ú|ÒjôµÎ�ÓÇÐ�Õ1Ö�Ò&Ï�ÜjÖ�Ï7Û � k³Ü�Ó£âÓ�à·Ö�à|ÒAß�Ü�Úv×�Ð�çAÕ�ï

V�à{ç�Ð�Ñ�Îpq�ç�à{î�Î�Õ�Ü�ß�Î�U�Ü�Ô�å�Ú{Î4Ò�æ�Ü�ß�Î�Ñ�Ñ�Ò�Ñ�Ï(Ü�Ð�ç�Û]Ö�Ð�Õ�à|ß�çà{ߣæ¶Î�Ñ�Î�ß�Ï=ÎAï C�Î(Ñ�Î�è�Ö�Û�Î�îjÜ�Ñ�à�Ü�×�Ú{Î _�^ / ÕãÐ�å�å�Ú|à{Î�Õ)Ö�Û�Î�ÕãÒAÐ�Ñ�Ï(ÎÐNÕãÎ�Ñ.Ü�Ó�Ó£Ñ�Î�Õ�Õ$Ö�ÒÉÖ�Û�ÎÇÏ�Ü�Ú{Út���7�P� \(^P��` ��b�a�^9ï öÀÎ&Ö�ÛUÐ�ÕëUß�Òjô Ö�Û�ÜjÖ _�^ / çAÎ(ß�Î�Ñ�Ü�Ú|Ú{ØbÛ�Ò�Ú�Ó�Õ³Ð�ß]Ö�Ñ�Ð�ÕkÖkôµÒ�Ñ�Ö�ÛUØÙÓ�ÜjÖ7ÜÜ�ß�Ó Õ�Û�Ò�Ð�Ú�Ó ×QÎÇÖ�Ñ�ÎGÜjÖ�Î�Ó Ü�ÕEÜÂÖ7Ü�à{ßAÖ�Î�Ó îjÜ�Ñ�à�Ü�×�Ú{Î�ï ó Û�à{Õà{ߣæ¶Î�Ñ�Î�ß�Ï=Î.Ü�Ú|Ú{Òjô)Õ¹Ö�Û�ÎeÏ7Û�Î�Ï7ëAÎ(ѹÖ�ÒÇÏ(Ü�Ö�Ï7ÛÀÖ�Û�Î.Ökô4Ò&Î�Ñ�Ñ�Ò�Ñ7ÕÒAß¹Ö�Û�ÎqÕ�Ð�×�Õ�Î@^]Ð�Î(ß]Ö�×�Ñ�Ü�ß�Ï7ÛYÒ�æ£Ö�Û�εÏ�Ü�Õ�ÎiÕãÖ�ÜjÖ�Î(Ô�Î(ß]Ö�ô®Û�Î(Ñ�Î_�^ / à�ÕqÐ�ÕãÎGÓEÜAÕqÜ�ß³Ð�ß�Ï7Û�ÎGÏ7ë�Î�ÓEÜ�Ñ�Ñ�ÜLØ�à{ß�Ó£Î�UEà{ßAÖ�Ò ,�8G�æ¶ÒAÑ×QÒ�Ö�Û&Ü�Ñ�Î�ÜAÓeÜ�ß�Ó�Ü�ô®Ñ�à|Ö�Î�è�ß�Î(à|Ö�Û�Î�Ñ®Ò�æIô®Û�à�Ï7ÛEà�Õ®ç�ÒUÒ£Óvïó Û�ιà{ߣæ¶Î(Ñ�Î(ßNÏ=Î1å�Ü�Õ�ÕµÑ�Ð�ßNÕq×NÎ(æ¶Ò�Ñ�Î�Ö�Û�ιÑ�Ü�ß�ç�ιÏ7Û�Î�Ï7ëAÎ(ÑGï

Page 7: Using Programmer-Written Compiler Extensions to Catch Security

b�Ö�Ö�Ñ�ÜLîAÎ(Ñ7ÕãÎGÕqÖ�Û�Î�Ï=ÒAÔ�å�à|Ú{Î�ÓÇÏ=Ò£Ó£Î�èQÚ{Ò]ÒAëUà|ß�ç.æ¶Ò�Ñ1Ð�ÕãÎGÕ®Ö�Û�ÜjÖà{Ô$å�Ú|Ø�Ö�Û�Î�ëAÎ(Ñ�ß�Î(Ú�×NÎ�Ú|à{Î(îAÎ�Õ1Ü.îjÜ�Ñ�à�Ü�×�Ú{Î�Û�ÒAÚ{Ó�Õ Ð�Õ�Î(ѹÓ�ÜjÖ7Ü�ïb�Ö�Ô�Ü�Ñ�ë£ÕeÖ�Û�ÎÂÓ£Î(õ�ß�à|Ö�à{Ò�ßCÒ�æ�Õ�Ð�Ï7Û-îjÜ�Ñ�à�Ü�×�Ú{ÎzÜAÕEÖ�Ü�à{ß]Ö�ÎGÓø à�ï Î�ï{è�ô®Û�Î�Ñ�Î�à|Ö�ôµÜAÕ¹Ó£Î�Ï(Ú{Ü�Ñ�ÎGÓvè�Ü�Õ�Õ�à|çAß�Î�Óvè�Ò�ÑYå�ÜAÕ�Õ�Î�Ózà|ß û ïö Û�Î�ßÇÖ�Û�Î�Ñ7Ü�ß�ç�Î�Ï7Û�Î�Ï7ë�Î�Ñ Õ�Ð�×�Õ�Î@^]Ð�Î�ßAÖ�Ú|Ø&Ñ�Ð�ß�Õ�è9Ö�Û�Î�Õ�Ø£ÕkâÖ�Î�Ô å�Ú{ÜAÏ=ÎGÕeÔ�Ü�Ñ�ë�ÎGÓíîLÜ�Ñ�à�Ü�×�Ú|ÎGÕ.à{ß Ö�Û�Î9�_� �� �a;�­ÕãÖ�ÜjÖ�Î�èÖ�Û�Î(Ñ�Î(×UØeÏ(Ü�Ð�Õ�à|ß�ç$Ö�Û�ÎYÑ�Ü�ß�ç�ιÏ7Û�ÎGÏ7ë�Î(ѵÖ�Ò�æ¶ÒAÚ|Ú{Òjô±Ö�Û�Î(Ô�ï

����� !#"%$�&(')& *,+�/�$1-,2 /8& *,+.2 & *�� 2

öÀÎzÜ�Ú�Õ�Ò­ôµÜ�ß]Ö.Ö�ÒÞõ�ß�Ó Ô�à�Õ�Õ�à|ß�çÞÕãà{ß�ë£Õ�ï özÎÀÓ£ÒbÕ�Ò­×UØÜ�ç]Ü�à{ß¹Ð�Õãà{ß�çqÖ�Û�ÎiÚ{Ò�çAà{ÏIÒ�æU×QÎ(Ú{à{Î=æ�Ü�ß�Ü�Ú|Ø£Õ�à{Õ�ïA<1à{î�Î�ß�Üqë]ß�Òjô®ßÕ�Ò�Ð�Ñ7Ï=ήÜ�ßNÓ�Õãà{ß�ë9è�Ö�Û�Î)ß�ÒAÑ�Ô�Ü�ÚNÏ7Û�Î�Ï7ëUà{ß�çYÕãÎ^AÐ�Î(ß�Ï(Î)à{Õ@a ø � ûü ÍEÑ�ÎGÜ�Ó�Õ®Ó�ÜjÖ�Ü�æ¶Ñ�Ò�Ô/Ð�ß�Õ�Üjæ¶ÎYÕãÒAÐ�Ñ7Ï=Î�è ø k û Ï7Û�ÎGÏ7ë£Õqà·ÖGèNÜ�ßNÓø u û å�Ü�Õ�ÕãÎGÕeà|Ö�Ö�ÒÙÜbÖ�Ñ�Ð�ÕkÖ�à|ß�çíÕ�à|ß�ëQï özÎÉÔ�Ò£Ó£à·õNÎ�Ó-Ö�Û�ÎÏ7Û�ÎGÏ7ë�Î(ÑIÖ�Ò XNÜ�ç�Ï(ÜAÕãÎGÕ�ô®Û�Î(Ñ�ήÖ�Û�Î ü Í�Ó£ÒUÎ�Õ4ÕkÖ�Î(å�Õ ø � û Ü�ßNÓø k û èN×�УÖ�ß�Ò�Ö ø u û ï b�æ�Ï(ÒUÓ�ÎYÑ�ÎGÜ�Ó�Õ®Ü�îjÜ�Ú{Ð�ιæ¶Ñ�Ò�Ô Ü�ë]ß�Òjô®ßÕ�Ò�Ð�Ñ7Ï=ÎÇÜ�ß�Ó±Õ�Ü�ß�à|Ö�à{á(ÎGÕeà|Ö�è�Ö�Û�à�ÕEà|Ô�å�Ú{à|ÎGÕ³à·Ö³×NÎ�Ú|à{Î(îAÎ�ÕeÖ�Û�ÎîjÜ�Ú{Ð�Î)ô®à{Ú|ÚNÑ�ÎGÜ�Ï7Û�Ü�Ó�Ü�ß�ç�Î�Ñ�ÒAÐ�ÕIÒ�åQÎ(Ñ7ÜjÖ�à|ÒAß ø ÜAÕ�Õ�Ð�Ô�à|ß�ç¹Ö�Û�Îå�Ñ�Ò�çAÑ�Ü�Ô$Ô�Î�Ñ®à{Õ�ß�Ò�Ö¹Ó£Ò�à{ß�ç.çAÑ�Ü�Ö�Ð�à|Ö�ÒAÐ�Õ)Õ�Ü�ß�à|Ö�à{á�Ü�Ö�à{Ò�ß û ï b�æÖ�Û�Î)îjÜ�Ú{Ð�Î�Ó£ÒUÎ�Õ�ß�Ò�ÖiÑ�Î�ÜAÏ7Û�ܹë]ß�Òjô®ß�Õ�à{ß�ë9èAôµÎ®Û�ÜLî�ήÚ{à{ë�Î(Ú{ØÔ�à{Õ�Õ�Î�ÓbÒ�ß�ÎAï Í£à|Ô�à{Ú{Ü�Ñ�Ú{Ø�è4ô4Î&Ï=ÒAÐ�Ú�Ó ø ×�УÖeÓ£ÒÉß�Ò�Ö û à{ߣæ¶Î(ÑÔ�à{Õ�Õ�Î�Ó�Õ�Ò�Ð�Ñ7Ï=ÎGÕ�×UØ$Ó£ÒAà|ß�çYÖ�Û�Î1Ï=ÒAß]îAÎ(Ñ7ÕãÎqÒ�æQÖ�Û�à�Õ4Ü�ß�Ü�Ú{Ø£Õãà�Õ�aXNÜ�ç�ç�à{ß�ç$ô®Û�Î(ß³Ö�Û�Î ü ÍEÕ�Ü�ß�à·Ö�à|á�Î�Õ)Ó�ÜjÖ�Ü$ôµÎ�Ó£Ò�ß�Ò�Ö®Ö�Û�à{ß�ëà�ÕµÖ�Ü�à{ß]Ö�ÎGÓ³Ü�ß�ÓEÖ�Û�Î�ß�å�Ü�Õ�ÕãÎGÕµà·Ö®Ö�Ò.Ü�Ö�Ñ�ÐNÕkÖ�à|ß�ç�Õ�à|ß�ëQïöÀÎ Ñ7Ü�ß�Ö�Û�ιÜ�ß�Ü�Ú|Ø£Õ�à{Õ4Ò�ßQ�÷à{ß]ÐZUlk£ï w�ï q�Ü�ß�Óeà|ßNÕãåQÎ�Ï=Ö�Î�Ó

Ö�Û�ΧÑ�ÎGÕãÐ�Ú·Ö7Õ�×UØÞÛ�Ü�ß�ÓíÖ�ÒÉõ�ßNÓÙô®Û�ÜjÖ.ôµÎ&ô4Î�Ñ�Î&Ô�à�Õ�Õ�à{ß�ç�ïó Û�Î�Ñ�Î�ôµÎ(Ñ�Î�Ñ�Ò�Ð�çAÛ�Ú{Ø ��� Ï=ÒAÔ$Ô�ÒAß&Ð�ÕãÎGÕ)Ò�æiÕ�Ü�ß�à·Ö�à|á�Î�Ó&à{ߣâå�УÖGèvÜ�Ú{Ú�×�Ð�Ö Ò�ß�Î�Ò�æ�ô®Û�à�Ï7Û§ôµÎ(Ñ�Î�Û�Ü�Ñ�Ô�Ú{Î�Õ�Õ�Ü�ßNÓ&Ó£à{ÓÇß�Ò�ÖÏ(Ü�Ð�Õ�Î�ÕãÎGÏ=Ð�Ñ�à·ÖkØ�å�Ñ�ÒA×�Ú{Î(Ô�Õ(ï V�ÒAÑvÎ)U�Ü�Ô�å�Ú{Î�èGà|ß�ܵæ¶Î�ôÉå�Ú{ÜAÏ=ÎGÕ(èÖ�Û�Î ëAÎ(Ñ�ß�Î(Ú9ôqÜ�Õ4Ð�Õãà{ß�ç�Ö�Û�ιÐ�Õ�Î(ѵîjÜ�Ú{Ð�Î à{ß�Ü�Õ�ô®à·Ö7Ï7ÛEÕãÖ�ÜjÖ�Î=âÔ�Î(ß]Ö�ï C�Òjô4Î�î�Î�Ñ�èµÒ�ß�Î&Ñ�Î�Õ�Ð�Ú|ÖeôµÎÇÓ£à�ÓÙß�Ò�ÖeÎ�U£åNÎGÏ�ÖEôqÜ�ÕÖ�ÛNÜjÖ Õ�à|ß�ëUÕ�Ï(Ü�ß&×QÎ�Ô�à�Õ�Õ�Î�Ó³×QÒ�Ö�Û&×UسÒ�Ô�à�Õ�Õ�à|ÒAß³Ü�ß�Ó³æ¶Ñ�Ò�ÔÜ�ßNÜ�Ú{ØUÕ�à�Õ�Ô�à{ÕãÖ�Ü�ë�ÎGÕ i�Ñ�Ð�ß�ß�à{ß�ç�Ö�Û�ιÏ7Û�Î�Ï7ë$æ¶ÒAÐ�ß�ÓeÜ�å�Ú�Ü�Ï=Îô®Û�Î�Ñ�Î$Ò�Ð�ѹà{ß]Ö�Î(Ñ�â�å�Ñ�Ò£Ï(Î�Ó£Ð�Ñ7Ü�ÚIÜ�ßNÜ�Ú{ØUÕ�à�Õ�Û�ÜAÓ§×QÎ(Î�ßzÒjîAÎ(Ñ�Ú|ØÕ�à|Ô�å�Ú{à{ÕãÖ�à�Ï�è4Ï(Ü�ÐNÕãà{ß�çÇÐNÕ�Ö�ÒzÔ�à�Õ�Õ$ܧÑ�Î�Ü�Ú4Î�Ñ�Ñ�Ò�Ñ ø ç�à{î�Î�ß­à|ßV�à|çAÐ�Ñ�Î � w�ï û

��� � � " /A5 67$�� !�� /��

<1Î(ß�Î(Ñ7Ü�Ú{Ú|ØAè�Ñ�Î�Ô�Ò�Ö�Î�Ú|ØÂÎ�U£å�Ú|ÒAà·Ö7Ü�×�Ú{γÎ(Ñ�Ñ�ÒAÑ�Õ�Ü�Ñ�ÎeÖ�Û�Î�Ô$Ò]ÕkÖÓ�Ü�ß�ç�Î�Ñ�ÒAÐ�Õ�ÕãÎGÏ=Ð�Ñ�à·ÖkØCÛ�Ò�Ú{Î�Õ�ï ü Ð�ÑzÏ7Û�Î�Ï7ëAÎ(Ñ XNÜ�ç]Õ�ô®Û�Î(ßÓ�Ü�Ö�ܹà�Õ�Ñ�Î�Ü�Ó�æ¶Ñ�Ò�Ô�å�Ü�Ï7ëAÎ=Ö�Û�ÎGÜ�Ó£Î�Ñ�Õ�Ü�ß�Ó$Ö�Û�Î�ß�Ð�Õ�Î�Ó$ô®à·Ö�Û£âÒ�Ð�Ö$Ï7Û�ÎGÏ7ëUÕ�ï ü ß�ÎeÒ�æ�Ö�Û�ÎEë�Î(ØÉå�Ñ�Ò�×�Ú|Î�Ô�Õ�ô4ÎeæoÜ�Ï(Î�Ó­ôqÜ�ÕÓ£Î(Ö�Î(Ñ�Ô�à|ß�à|ß�ç à|æ�å�Ü�Ï7ëAÎ=Ö�Õ�ôµÎ(Ñ�ÎÉà|ßNÏ=Ò�Ô�à{ß�ç Ò�Ñ&ÒAУÖ�çAÒ�à{ß�ç�ï�)Î(Ökô4ÒAÑ�ëUà{ß�ç­Ï=Ò£Ó£ÎÇæ¶Ñ�Î^]Ð�Î(ß]Ö�Ú{ØíÑ�ÎGÜ�Ó�ÕeîLÜ�Ú|Ð�Î�Õ�æ¶Ñ�Ò�Ô ÒAУÖãâç�ÒAà|ß�ç�å�Ü�Ï7ëAÎ=Ö7Õ ø à{ßeåNÜ�Ñ�Öi×NÎGÏ(Ü�Ð�ÕãÎ Ò�æ÷Ô�Ò£Ó£Ð�Ú�Ü�Ñ�à·ÖkØ û Ü�Õ4ô4Î�Ú|ÚÜ�Õ.à|ß�Ï(Ò�Ô�à{ß�çÂå�Ü�Ï7ëAÎ=Ö7Õ(ïCözΧÒAß�Ú{ØbôqÜ�ß]Ö�Ö�Ò­Ï7Û�Î�Ï7ëbÓ�ÜjÖ�ÜÑ�Î�Ü�ÓÞæ¶Ñ�Ò�Ô à{ß�Ï(Ò�Ô�à|ß�çÀåNÜ�Ï7ë�Î(Ö�Õ i Ö�Û�ΧÓ�Ü�Ö�ÜÉÑ�Î�Ü�ÓÞæ¶Ñ�Ò�ÔÒ�Ð�Ö�ç�ÒAà|ß�ç�å�Ü�Ï7ëAÎ=Ö7Õià�Õ ø ç�Î�ß�Î(Ñ7Ü�Ú{Ú|Ø û Õ�Ü�æ¶Î1Õ�à|ßNÏ=Î�à|Öqà{ÕµÚ{à|Ô�à|Ö�Î�ÓÖ�ÒeÑ�ÎGÜ�Ó£à{ß�ç.å�ÜAÏ7ë�Î(Ö)Û�Î�ÜAÓ£Î(Ñ7Õ)å�Ñ�Ò£Ó£Ð�Ï(Î�Ó�×UØeÖ�Û�Î�Û�ÒAÕãÖ ü Í9ïò)ß�æ¶Ò�Ñ�Ö�Ð�ß�Ü�Ö�Î�Ú|ØAèUÖ�Û�Î�Ñ�Î1à{Õqß�Ò�çAÎ(ß�Î�Ñ�Ü�ÚQÕ�åNÎGÏ=à|õNÏ(Ü�Ö�à{Ò�ßEÒ�æ�Ó�à·âÑ�Î�Ï�Ö�à|ÒAß÷ï bPßNÕkÖ�Î�Ü�ÓíôµÎ&Ô�Ð�ÕãÖ.à{ߣæ¶Î(ÑEÒ�ß�Î�æ¶Ñ�Ò�Ô Ö�Û�ÎÇÏ(Ò£Ó£Î�ïü Ö�Û�Î(Ñ�ô®à{Õ�Î�è�ôµÎ³Ï(Ò�Ð�Ú�Ó­ß�Ò�Ö�å�Ñ�ÜAÏ�Ö�à{Ï�Ü�Ú{Ú|ØÂÏ7Û�ÎGÏ7ëÀß�Î=ÖkôµÒ�Ñ�ëAâ

��� ������� > �������C !���"�����"���D���� ��.7��&�&�& � ���C5(�+�)�+*� ��.�����5���,��7��"C5���.7�10z���

��"���D�, �C.��7/[�<8���M�����O,0���/�! 2�2)"" $[N "" $�,���!�#7!�# !�2;:��������7��R��7�� �(E�E�E �

�����8P"�? N "" $7��R��7��. �+M�����8(!%8n�C5 6@24� 8����T5����C8��)"�!�.�#�5 �T5,0�-�D7!�=

8P"�? ��R98P"�?@�)��-�D�D !7��.7, �%D �������������TD #�8 =8P"�? ��R98P"�?@�)��-�D�D !7��.7, �%D ��������������/�!�Dz�j'�EM

V�à{ç�Ð�Ñ�Îc{ a ]®Î�Ô�Ò�Ö�Î�Ú|Ø&Î�U£å�Ú|ÒAà·Ö7Ü�×�Ú{Î$Î(Ñ�Ñ�ÒAÑ@a ` b / åNÒAà|ß]Ö�Õ¹Ü�ÖÐ�ß�Ï7Û�Î�Ï7ëAÎ�Ózß�Î=ÖkôµÒ�Ñ�ëÇÓ�Ü�Ö�Ü�ô®Û�à�Ï7ÛÂÏ(Ü�ßÀ×QÎ.Ð�Õ�Î�ÓÀÖ�Ò§Ï=ÒAå]ØÜ�Ñ�×�à·Ö�Ñ�Ü�Ñ�Ø�Ó�Ü�Ö�Ü$Ò�ß]Ö�Ò$Ö�Û�Î�ÕkÖ7Ü�Ï7ë.×UØ.ÒjîAÎ(Ñ�X�Òjô®à{ß�çA��`��Qï

à{ß�ç.Ï(ÒUÓ�Î�Õãà{ß�Ï(ÎYÒ�Ð�Ñ)Ñ�Î�Õ�Ð�Ú|Ö�Õ®ôµÒ�Ð�Ú{Ó�×QÎ�ôqÜ�Õ�Û�Î�Ó³Ò�Ð�Ö�ô®à·Ö�ÛæoÜ�Ú{Õ�ιåNÒ]Õãà|Ö�à{î�ÎGÕ(ï

ó Û�Î���à|ßUÐ U$ë�Î�Ñ�ß�Î�Ú£ë�Î�Î(å�ÕIÖ�Ñ�ÜAÏ7ë�Ò�æ9ß�Î(Ökô4ÒAÑ�ë�Ó�Ü�Ö�ܹà{ß�ÜÕãÖ�Ñ�Ð�Ï=Ö�Ð�Ñ�Î�Ï(Ü�Ú|Ú{Î�Ó�Ý�b5� �n�\n\Nè éqô®à|Ö�Û�îjÜ�Ñ�à�Ü�×�Ú{Î�ÕvÒ�æUÖ�Û�à�ÕvÖkØUåQÎÏ(Ò�Ô�Ô�Ò�ß�Ú{ØeßNÜ�Ô�Î�Ó Ý�b���vï é �4Ü�Ï7Û³õ�Î(Ú�Ó�Ò�æ�Ö�Û�Î�ÕãÖ�Ñ�Ð�Ï=Ö�Ð�Ñ�ÎÏ(Ò�ß]Ö�Ü�à|ßNÕiîjÜ�Ñ�à{Ò�Ð�Õ4à|ß�æ¶Ò�Ñ�Ô�Ü�Ö�à{Ò�ßeÜ�×NÒAУֵÖ�Û�ιÒ�Ñ�à{ç�à{ß�ÕiÒ�æ÷Ö�Û�ÎÓ�ÜjÖ�Ü�s�Ö�Û�Î�åQÒ�à{ß]Ö�Î(Ñ)Ö�Ò.Ö�Û�Î�ÜAÏ�Ö�ÐNÜ�Ú�Ó�ÜjÖ�Ü�à�Õ à|ß�Ö�Û�ÎÇÝ�Ó�ÜjÖ7Ü�éõNÎ(Ú�Óvï"V�à|çAÐ�Ñ�Î {.ç�à{î�ÎGÕ Ü�ßÇÎ)U�Ü�Ô$å�Ú|Î�Ò�æµÜeß�Î(Ökô4ÒAÑ�ë�Î�Ñ�Ñ�Ò�ÑGïbPߧÖ�Û�à�Õ¹Ï=Ò£Ó£Î�èvÜ�æ¤Ö�Î(ѹӣÎ^AÐ�Î(Ð�Î�à|ß�ç�Ü.ß�Î=ÖkôµÒ�Ñ�ëEå�ÜAÏ7ë�Î(Ö b���æ¶Ñ�Ò�Ô Ö�Û�Î�Ñ�ÎGÏ=Î(à{î�Î ^AÐ�Î(Ð�ÎÀÝC��_�^ �Pg[^+� ���Qè é$Ö�Û�Î�Ï=Ò£Ó£Î�Õ�Î=Ö�ÕÖ�Û�ιåNÒAà|ß]Ö�Î(ÑGè�`�b / è]Ö�Ò�Ö�Û�ÎYåNÜ�Ï7ë�Î(ÖqÓ�ÜjÖ�Ü�ï�b�ÖµÖ�Û�Î(ß&Ó£ÒUÎGÕµÜ�ßÎ�U£å�Ú|ÒAà·Ö7Ü�×�Ú{Î�Ô�Î(Ô�Ò�Ñ�Ø Ï(Ò�åUØ�ô®Û�Î(Ñ�Î�×NÒ�Ö�Û¹Ö�Û�Î�Ú|Î�ß�ç�Ö�ÛYÒ�æUÖ�Û�ÎÏ(Ò�åUاÜ�ßNÓÇÖ�Û�Î.Ü�Ï=Ö�Ð�Ü�ÚiÏ=ÒAå�à{Î�ÓÀÓ�ÜjÖ7Ü&Ï=Ò�Ô�Î$æ¶Ñ�Ò�Ô Ö�Û�Î�Ö�Û�ÎÔ�ÎGÕ�Õ�Ü�çAÎ1Ó�Ü�Ö�Ü�ï ó Û�ÎYîjÜ�Ñ�à{Ü�×�Ú{Î Ö�Û�ÜjÖ à{Õ®ÒjîAÎ(Ñ�ô®Ñ�à|ÖãÖ�Î(ß÷è+��`��Qèà�ÕIÒ�ß$Ö�Û�Î)ÕkÖ7Ü�Ï7ë9èAÜ�Ú|Ú{Òjô®à{ß�ç1ܹÔ�Ü�Ú|à�Ï=à{Ò�Ð�ÕIÐNÕãÎ�ÑIÖ�ÒYÒjî�Î�Ñ�ô®Ñ�à|Ö�ÎÜ$Ñ�Î=Ö�Ð�Ñ�ß�Ü�Ó�Ó£Ñ�ÎGÕ�ÕqÜ�ß�ÓEÖ�Ü�ëAÎ ÒjîAÎ(ѵÖ�Û�ÎYÔ�ÜAÏ7Û�à{ß�Î�ï

à{ÕãÖ�à{ß�çAÐ�à{Õ�Û�à{ß�ç�ô®Û�à{Ï7Û>b� �n�\(\ b¹Ü�Ñ�ή×NÎ�à|ß�ç�Ð�Õ�Î�Ó�æ¶ÒAÑà{ß�Ï(Ò�Ô�à|ß�ç§Ü�ß�ÓÀÒ�Ð�Ö�ç�ÒAà|ß�ç§Ó�ÜjÖ7Ü�à{Õ¹Ö�Ñ�à�Ï7ëUØ�ï³ö Û�à{Ú|Î.à{ßÉÖ�Û�ÎÜ�×NÒjîAÎ�Î)U�Ü�Ô�å�Ú{Î.Ö�Û�à�Õ$Ó�à{ÕãÖ�à{ß�Ï�Ö�à|ÒAß­à�Õ�Ï(Ú|ÎGÜ�Ñ ø å�Ð�Ú{Ú{à|ß�çFb���æ¶Ñ�Ò�ÔêÜ.Ú{à�ÕkÖ1ß�Ü�Ô�Î�Ó ^+����eà{Õ1Ü.çAÒ]Ò£Ó�à{ß�Ó£à�Ï(Ü�Ö�à{Ò�ߧà|Ö1à�Õ à|ߣâÏ(Ò�Ô�à{ß�ç Ó�Ü�Ö�Ü û è�à{ß�çAÎ(ß�Î�Ñ�Ü�Ú�Ö�Û�ÎqîLÜ�Ñ�à{Î=ÖkØYÒ�æNÜ�Ó�Û�Ò£ÏißNÜ�Ô�à|ß�çÏ(Ò�ßUî�Î�ß]Ö�à{Ò�ß�Õ�ôµÒ�Ð�Ú{ÓeÑ�Î^AÐ�à|Ñ�Î�Ï=Ú{ÒAÕ�Î)Ö�Ò�æ¶Ð�Ú{Ú|â�×�Ú{Òjô®ßeßNÜjÖ�Ð�Ñ�Ü�ÚÚ�Ü�ß�ç�Ð�Ü�ç�Î�å�Ñ�Ò£Ï=ÎGÕ�Õ�à{ß�ç�ï"V�Ð�Ñ�Ö�Û�Î�Ñ�è÷Õ�à|ßNÏ=Î�ô4Î�Ü�Ñ�Î�Ï7Û�Î�Ï7ëUà{ß�çæ¶ÒAÑ�Î(Ñ�Ñ�ÒAÑ�Õ�èiôµÎ§Ó£ÒÂß�Ò�ÖeôqÜ�ß]Ö�Ö�Ò­ß�ÎGÏ=ÎGÕ�Õ�Ü�Ñ�à|Ú{ØÉÖ�Ñ�Ð�ÕãÖ.Ö�Û�ÎßNÜ�Ô�à|ß�ç�Ï(Ò�ßUî�Î�ß]Ö�à{Ò�ß�ÕµÐ�Õ�Î�ÓE×UØ.å�Ñ�Ò�ç�Ñ7Ü�Ô�Ô�Î(Ñ7Õ�ïó ÒÀÕ�Ò�Ú{î�ÎEÖ�Û�à{Õ�å�Ñ�Ò�×�Ú|Î�Ô<ô4γÐ�Õ�γå�Ñ�ÒAç�Ñ7Ü�Ô�×NÎ�Û�ÜLîUà|ÒAÑ

Ö�ÒÉà|ߣæ¶Î�Ñ.ô®Û�Î(Ö�Û�Î�Ñ.å�Ü�Ï7ëAÎ=Ö7Õ$Ü�Ñ�Î�à{ß�Ï=ÒAÔ�à|ß�çÉÒAÑ�Ò�УÖ�ç�Ò�à{ß�çNïöÀÎ1Ö�Ñ�à|ÎGÓEÕ�Î(îAÎ(Ñ7Ü�Ú9Ü�å�å�Ñ�Ò]Ü�Ï7Û�ÎGÕ(è]×�УÖ)à{ßeÖ�Û�ιÎ(ß�Ó³Ü�Õãà{Ô�å�Ú{ÎÛ�Î(Ð�Ñ�à{ÕãÖ�à�ϵô4ÒAÑ�ëAÎ�Ó�Ö�Û�ή×QÎ�ÕãÖ@a�à·æ9Ö�Û�Î)Ï7Û�Î�Ï7ëAÎ(ÑIÕãÎ�Î�Õ�Ö�Û�Î)Ü�Ú{Ú|Ò�âÏ�ÜjÖ�à|ÒAß.æ¶Ò�ѵÖ�Û�Î�ÕkÖ�Ñ�ÐNÏ�Ö�Ð�Ñ�ÎAè]à|Ö)ëUß�Òjô)Õ4Ö�Û�Ü�Ö®à·Ö®à�ÕqÒ�УÖ�ç�Ò�à{ß�çNïü Ö�Û�Î(Ñ�ô®à�ÕãÎAèAà|ÖqÜAÕ�Õ�Ð�Ô�Î�ÕiÖ�ÛNÜjÖ®à·Öqà�Õ4à{ß�Ï(Ò�Ô�à|ß�ç�ï�ò�Õ�à|ß�ç�Ö�Û�à{ÕÛ�Î(Ð�Ñ�à{ÕãÖ�à�Ï�èAÖ�Û�Î1ßUÐ�Ô�×NÎ�Ñ4Ò�æ÷æoÜ�Ú�Õ�Î�åQÒAÕ�à·Ö�à|îAÎ�ÕµÓ£Ñ�ÒAå�åQÎ�Ó�æ¶Ñ�Ò�ÔÜ�×NÒAУÖ]k � Ö�ÒAk�ï

ü Ð�ÑEà|ß�à·Ö�à{Ü�Ú¹Ü�ÖãÖ�Î(Ô�å£Ö³Ö�ÒÞà{ߣæ¶Î�ѳӣà{Ñ�Î�Ï�Ö�à|ÒAß±ôqÜ�Õ.×QÒ�Ö�ÛÔ�ÒAÑ�Î�Ï(Ò�Ô�å�Ú{Î)U§Ü�ßNÓ§Ü�æoÜ�à|Ú{Ð�Ñ�Î�ï �÷Ò�çAà{Ï�Ü�Ú{Ú|ØAèNà|Ö1Õ�Î(Î�Ô�Õ�Ñ�Î�Ü�âÕ�Ò�ßNÜ�×�Ú{Î�Ö�Û�Ü�ÖeÖ�Û�ÎÇÐ�Õ�Ü�çAΧÒ�æYÖ�Û�Î[b�;�íÕãÖ�Ñ�Ð�Ï=Ö�Ð�Ñ�ÎÇôµÒ�Ð�Ú�ÓÛ�Î(Ú{åCÖ�Ò-Ó£Î(Ö�Î(Ñ�Ô�à|ß�ÎÂà·æ�à|ÖÇôµÜAÕ&à{ß�Ï=ÒAÔ$à{ß�ç ÒAÑ&Ò�УÖ�ç�Ò�à{ß�çNïb�æ à·Ö7Õ$õ�Î(Ú�Ó�Õ$ô4Î�Ñ�ÎEÑ�ÎGÜ�ÓÞÔ$ÒAÑ�ÎEÒ�æ¤Ö�Î(ßbÖ�Û�Ü�ßÞô®Ñ�à·Ö�Ö�Î(ß�è�Ö�Û�Î

Page 8: Using Programmer-Written Compiler Extensions to Catch Security

��� ����U���, ��� �¹�� �I�=@Q�£� ����� �z�vè ��à�ÕqÖ�Ü�à|ß]Ö�ÎGÓvï`�a�` ���P� ���� "��(�!"Cb %������ Uèn�� Uè���� ó Û�ÎYÎ)U£å�Ñ�Î�Õ�Õ�à|ÒAßeà�ÕµÖ�Ü�à{ß]Ö�ÎGÓvï����Qè������vè������è ��� � �eÑ�Î(Ô�Ü�à{ß�ÕµÖ�Ü�à|ß]Ö�Î�Óvï� g[\� 7a��� �@� Õµõ�Î�Ú{Ó�Õ)Ü�Ñ�Î�Ö7Ü�à{ß]Ö�Î�Ó÷ï

ó Ü�×�Ú{ÎAuZa�ÍUÐ�Ô�Ô�Ü�Ñ�ØÇÒ�æ®Û�Òjô ܳÖ�Ü�à|ß]Ö�Î�ÓÉîjÜ�Ú{Ð�Îc�ÀÖ�Ñ7Ü�ß�Õ�à·âÖ�à{î�Î�Ú|Ø.Ö�Ü�à{ß]Ö�Õ®Ò�Ö�Û�Î�Ñ®îjÜ�Ú{Ð�Î�Õ�ï

Ï7Û�ÎGÏ7ë�Î(Ñ Ï=Ò�Ð�Ú{Ó&à{ߣæ¶Î�Ñ�Ö�Û�ÜjÖ Ö�Û�Î$ÕkÖ�Ñ�Ð�Ï=Ö�Ð�Ñ�Î�ôqÜ�Õ�à|ß�Ï(Ò�Ô�à{ß�ç�ïb�æqÖ�Û�Î�õNÎ(Ú�Ó�Õ�ôµÎ(Ñ�Î�ô®Ñ�à|ÖãÖ�Î(ßÂÔ�Ò�Ñ�Î�Ò�æ¤Ö�Î�ßÉÖ�Û�Ü�ßÉÑ�ÎGÜ�Óvè�Ö�Û�ÎÓ�Ü�Ö�Ü.ôµÒ�Ð�Ú{Ó�×QÎ�ÒAУÖ�çAÒ�à{ß�ç�ï V�Ò�Ñ1Î)U�Ü�Ô�å�Ú{Î�èQå�Ð�Õ�Û�à{ß�çEÓ�ÜjÖ�Üà{ßAÖ�Ò­Ü�ß ÒAУÖ�çAÒ�à{ß�çÉß�Î=ÖkôµÒ�Ñ�ë­å�ÜAÏ7ë�Î=Ö.ôµÒ�Ð�Ú{ÓíÚ{Ò]ÒAëÞÕ�Ò�Ô�Î=âÖ�Û�à|ß�ç�Ú{à{ë�Î.a

b���� �7��a�� � � b�;�����b���� �b���� �v���n��a�^��b�����Pa����b���� ���P_��_ �j` �����P_��_��

ô®Û�Î�Ñ�ÎGÜ�ÕCå�Ð�Ú{Ú|à{ß�ç Ó�ÜjÖ7Ü æ¶Ñ�Ò�Ô Ü�ß à{ß�Ï=ÒAÔ�à|ß�ç ß�Î(Ökô4ÒAÑ�ëå�ÜAÏ7ë�Î=Ö®ôµÒ�Ð�Ú�ÓEÚ|ÒUÒ�ëEÕãÒAÔ$Î(Ö�Û�à{ß�ç�Ú{à|ëAÎ.a

�a�`�� � b���� �7��a�� ������(��a�^��b7����a�� � b�;�� �Pb�������` b / � �9_�� ��_�� ���` b / � �(b�;������P_��_��

ó ÛUÐ�Õ�è�à·æQÖ�Û�Î(Ñ�Î4ôµÎ(Ñ�Î4Ô�ÒAÑ�Îqå�Ð�Ú{Ú�Õ�Ö�Û�Ü�ß�å�ÐNÕãÛ�ÎGÕIåNÎ�Ñãæ¶ÒAÑ�Ô�ÎGÓÒ�ß&Ü�ß b5�;�vè£Ö�Û�Î�Ó�Ü�Ö�Ü�Ò�æIÖ�Û�ÜjÖ b�;�eôµÒ�Ð�Ú�Ó�×QÎ�à|Ô�åQÒ�Ñ�Ö�Ü�ßAÖÖ�Ò­Ö�Û�ÎÀÏ7Û�Î�Ï7ëAÎ(ÑGï ó Û�à�Õ.ôqÜ�Õ.ß�Ò�Öeß�Î�Ï=ÎGÕ�Õ�Ü�Ñ�à{Ú|ØÞÖ�Û�ÎÇÏ�Ü�Õ�Î�ï Ñ�à{î�Î�Ñ�ÕiÒ�æ¤Ö�Î�ß.Ð�Õ�Î�Ó�Ö�Û�Î õ�Î(Ú�Ó�Õ4Ò�æ÷Ò�Ð�Ö�ç�ÒAà|ß�ç b����ÕIæ¶ÒAÑiæ¶Ð�ÑãâÖ�Û�Î(Ñ)Ï(Ü�Ú{Ï(Ð�Ú�ÜjÖ�à{Ò�ßNÕ(ï

� � ����'�8e�I�=� Ë ����6��)�

ó Û�à�Õ Õ�Î�Ï=Ö�à{Ò�ß Ó£à�Õ�Ï(Ð�Õ�Õ�Î�Õ Õ�Ò�Ô�Î à{Ô�åNÒAÑãÖ7Ü�ß]Ö å�Ñ7Ü�Ï=Ö�à�Ï(Ü�ÚÏ7Û�ÎGÏ7ë�Î(Ñ�à�Õ�ÕãÐ�ÎGÕ�a�Ö�Ñ�Ü�ß�Õ�à·Ö�à|îAÎ�Ö�Ü�à{ß]Ö�à{ß�ç�èµà{ß�Û�Î(Ñ�à|Ö�Î�Ó ÕãÖ�Ü�Ö�ÎGÕ(èà{ßAÖ�Î(Ñ�â�å�Ñ�Ò£Ï=ÎGÓ£Ð�Ñ7Ü�Ú�Ü�ß�Ü�Ú{Ø£Õãà�Õ(è�æoÜ�Ú�Õ�ÎeåQÒAÕ�à·Ö�à|îAÎeÕãÐ�å�å�Ñ�Î�Õ�Õãà{Ò�ß÷èæoÜ�Ú�Õ�Î1ß�Î(çAÜ�Ö�à{î�ÎGÕ(è�Ü�ß�ÓeÑ7Ü�ß�ë]à{ß�ç$Î(Ñ�Ñ�ÒAÑ�Õ�ï

�)� � � $�� *,2 &(/8& '�" /�� & *0/8& *,+

ó Û�Î�Ñ7Ü�ß�ç�ÎYÏ7Û�Î�Ï7ëAÎ(Ñ)Ü�Ú|Ú{Òjô)ÕqÖ�Ü�à|ß]Ö�Î�Ó³îjÜ�Ñ�à{Ü�×�Ú|ÎGÕqÖ�Ò.Ö�Ñ7Ü�ß�Õ�à·âÖ�à{î�Î�Ú|Ø1Ö7Ü�à{ßAÖIÒ�Ö�Û�Î(Ñ�îjÜ�Ñ�à{Ü�×�Ú{Î�Õ�ï ó Ü�×�Ú{Îpu�Õ�Ð�Ô�Ô�Ü�Ñ�à|á�Î�Õ�Ö�Û�ÎGÕãÎÑ�Ð�Ú|ÎGÕ(ï ó Û�Î�Õ�à{Ô$å�Ú|ÎGÕkÖa4Ü$Ö�Ü�à|ß]Ö�Î�Ó�îjÜ�Ñ�à{Ü�×�Ú{Î �³Ü�Õ�Õ�à|çAß�Î�ÓEÖ�ÒÜ�ß�Ò�Ö�Û�Î(Ñ�îjÜ�Ñ�à{Ü�×�Ú{Î �ÞÕãÛ�ÒAÐ�Ú�ÓíÏ�Ü�Ð�Õ�Î �ÉÖ�ÒÂ×QÎ�Ö�Ü�à|ß]Ö�Î�ÓÙÜ�ÕôµÎ(Ú{Ú\ï �O^AÐ�à|îjÜ�Ú{Î(ß]Ö�Ú|ØAèUÏ(Ò�åUØUà|ß�ç �eÒAß]Ö�Ò ��Ð�Õ�à|ß�ç�Ü�Ô�Î(Ô�Ò�Ñ�ØÏ=ÒAåUØÞÑ�Ò�УÖ�à|ß�Î ø Î�ï ç�ï{è `�a�`����P� û Ü�Ú�ÕãÒÂÖ7Ü�à{ß]Ö�Õ �Qï ð�Ó�Ó£à|ß�ç�èÕ�Ð�×£Ö�Ñ7Ü�Ï=Ö�à{ß�ç�Ò�Ñ�Ô�Ð�Ú|Ö�à{å�Ú|ØUà{ß�ç§Ü�ßUÐ�Ô�×QÎ(Ñ�ô®à·Ö�ۭܳÖ�Ü�à{ß]Ö�ÎGÓîjÜ�Ú{Ð�Î�å�Ñ�Ò£Ó£Ð�Ï=ÎGÕYÜ�ß�Ò�Ö�Û�Î�ѹÖ�Ü�à|ß]Ö�ÎGÓÀîLÜ�Ú|Ð�Î�ïEÍUà{Ô�à|Ú�Ü�Ñ�Ú{Ø�è�à{ߣâÏ=Ñ�Î(Ô�Î�ßAÖ�à|ß�ç�Ò�Ñ�Ó£ÎGÏ=Ñ�Î(Ô�Î(ß]Ö�à|ß�ç.Ü�Ö�Ü�à{ß]Ö�ÎGÓ�îLÜ�Ú|Ð�Î�Ú|ÎGÜLî�ÎGÕqà·ÖÖ�Ü�à|ß]Ö�Î�Óvï �)Ò�Ö�Î�èQÛ�ÒjôµÎ(î�Î�Ñ�è�Ö�Û�Ü�Ö1ôµÎ�Ó£ÒEß�Ò�Ö Ï(Ò�ß�Õ�à�Ó£Î(Ñ�Ö�Û�ÎÑ�Î�Õ�Ð�Ú·ÖEÒ�æ�Ó£à{î]à�Ó£à{ß�çbÜÂÖ�Ü�à{ß]Ö�ÎGÓÙîLÜ�Ú|Ð�ÎÇÒ�ÑEÏ=Ò�Ô�å�Ð�Ö�à{ß�ç­à|Ö�ÕÔ�Ò£Ó£Ð�Ú{Ð�Õ)Ö�Òe×QÎ�Ö7Ü�à{ßAÖ�Î�Óvï¹ÍUÐ�Ï7Û§ÒAåNÎ�Ñ�Ü�Ö�à{Ò�ß�Õ�Ü�Ñ�Î�Ð�Õ�Î�Ó&×UØ

� ��D�57!�D���Y�ZF�+�?>@*%�!���D��� �1�"�, "C#�$ �@�)�+* �1�"�, 0��CD ?7,��������7/ ��"C.0���

!����7-�� N[��-�5 67�CD�2)����?�5���R�! 47,��������@=�"��������@= ����� EM������ N["��������7��R�"���,�17�<8P��/�6@M��1 2�2;��D50[N D !�5���R�D ! ,���.7�C$�/�!�S��CU(E N�N�&�E

�������D[N���D50���R���D50�,������7��������2 ����� EPM

V�à{ç�Ð�Ñ�ÎÉþZa bPß�Û�Î�Ñ�à|Ö�ÎGÓäÕkÖ7ÜjÖ�ÎÂÏ�ÜjÖ�Ï7Û�Î�Õ³Ö�Û�à{Õ&Î�Ñ�Ñ�Ò�ѳô®Û�à�Ï7ÛÜ�Ú|Ú{Òjô)Õ�Ü�ß­ÜjÖãÖ7Ü�Ï7ëAÎ(ÑYÖ�Ò§Ö�Ü�ë�ÎeÏ(Ò�ß]Ö�Ñ�Ò�ÚiÒ�æ®Ö�Û�ÎEÕ�ØUÕãÖ�Î�Ô ×UØÏ�Ü�Ð�Õ�à{ß�ç.Ö�Û�Î ü Í&Ö�Ò��kÐ�Ô�åÇÖ�Ò³Ü�ßzÜ�Ñ�×�à|Ö�Ñ7Ü�Ñ�سÔ$Î�Ô�Ò�Ñ�Ø&Ú|Ò�âÏ�ÜjÖ�à|ÒAß÷ï ó Û�Î�ÜjÖ�Ö�Ü�Ï7ë�Î�U£å�Ú|ÒAà·Ö7ÕµÖ�Û�ÎYÛ�Ò�Ú{ÎYô®Û�Î(Ñ�ιÐ�ÕãÎ�Ñ)Ó�ÜjÖ7Üà�Õ ø � û Ñ�Î�ÜAÓ.à{ß]Ö�Òlb7_;� �(^9è ø k û Ü�Õ�Õãà{ç�ß�Î�Ó�Ö�Ò Uè�Ü�ß�Ó ø u û Yà{ÕÐNÕãÎGÓYÖ�Ò¹à{ß�Ó£Î�U�à|ß]Ö�Ò Ö�Û�Î ��a ^ �_�� ��a�Ö�Ò1ÒA×£Ö�Ü�à|ß$Ü æ¶Ð�ß�Ï�Ö�à|ÒAßåQÒ�à{ß]Ö�Î�ÑqÖ�Û�Ü�Ö®Ö�Û�ÎYëAÎ(Ñ�ß�Î(Ú�kÐ�Ô�å�ÕqÖ�Ò�ï

Ö�Û�Î�ëAÎ(Ñ�ß�Î(Ú�Ö�Ò.åQÎ(Ñ�æ¶Ò�Ñ�ÔêÐ�å�åQÎ(Ñ�â�×QÒ�Ð�ß�Ó§Ï7Û�ÎGÏ7ëUÕ@aµÔ$Ò£Ó£Ð�Ú|Ð�Õ×UØ�Ö�Ñ�Ð�ß�Ï(Ü�Ö�à{ß�çYÖ�Û�ήÖ�Ü�à|ß]Ö�Î�Ó�îjÜ�Ú{Ð�Î�èUÓ£à{îUà{Õ�à|ÒAß�×UØ$Õ�Ï(Ü�Ú|à{ß�çYà|ÖÓ�Òjô®ß÷ï ø �)Ò�Ö�ÎiÖ�Û�ÜjÖ�Ö�Û�εӣà{îUà{Õ�à{Ò�ß�Ô�ÜLعß�Ò�Ö�Õ�Ï(Ü�Ú{Î4Ü)Ö�Ü�à|ß]Ö�ÎGÓîjÜ�Ú|Ð�Î æoÜ�ѵÎ(ß�Ò�Ð�çAÛ�sUô4ιӣÒ$ß�Ò�Ö®Ï7Û�Î�Ï7ë$æ¶ÒAÑ4Ö�Û�à�Õ4Î�Ñ�Ñ�Ò�ÑGï û V�à·âßNÜ�Ú{Ú|ØAèjà·æNÜ ÕkÖ�Ñ�ÐNÏ�Ö�Ð�Ñ�εà{Õ�Ö7Ü�à{ßAÖ�Î�Óvèjà|Ö�Õ�õ�Î�Ú{Ó�Õ�Ü�Ñ�Î4Ñ�ÎGÏ=Ð�Ñ7Õ�à|îAÎ(Ú{ØÖ7Ü�à{ß]Ö�Î�Ó&ÜAÕ)ôµÎ(Ú{Ú ø Ó£à�Õ�Ï(Ð�Õ�Õ�Î�Ó§Ô$ÒAÑ�Î�×NÎ�Ú|Òjô û ï ó Û�Î�Ï7Û�Î�Ï7ë�Î�Ñà�Õ�ÕãÖ�Ñ�Ð�Ï�Ö�Ð�Ñ�Î�ÓzÖ�Ò§Ô�Ü�ë�Î.Ü�Ó�Ó£à|ß�ç§Ü�Ó�Ó£à|Ö�à{Ò�ßNÜ�Ú�Ö�Ñ�Ü�ß�Õãà|Ö�à{îUà·ÖkØÑ�Ð�Ú{Î�ÕqÎGÜ�Õ�Ø�ï

�,��� �<*,9,"%$1&(/�" � 2 /�� /�"�2

ö Û�à|Ú{Î.ÕãÒAÔ�Î�Õ�Î�Ï(Ð�Ñ�à·ÖkاîUà{Ò�Ú�ÜjÖ�à|ÒAß�Õ¹×NÎ�ç�à{ßzô®à|Ö�ÛÂÑ7ÜLô à{ß]Ö�Î=âçAÎ(Ñ7Õ®Ï=ÒAÔ$à{ß�ç�æ¶Ñ�Ò�Ô Ð�Õ�Î(Ñ�Õ�å�ÜAÏ=Î�èNà·Ö1à{Õ Ü�Ú�ÕãÒ.Ü�ß&Î(Ñ�Ñ�ÒAÑ ø Ü�ß�ÓÜ�Ô�Ò�Ñ�Î�Ï=ÒAÔ$Ô�ÒAß.Ò�ß�Î û Ö�Û�ÜjÖµÖ�Û�Î ëAÎ(Ñ�ß�Î(ÚQÏ=Ò�å�à|ÎGÕ4Ü�ßeÎ(ß]Ö�à|Ñ�ÎÕãÖ�Ñ�Ð�Ï=Ö�Ð�Ñ�Î.æ¶Ñ�Ò�Ô Ö�Û�Î�Ð�ÕãÎ�Ñ�Ü�ß�Ó­Ö�Û�Î�ßbÐ�Õ�Î�Õ�ÜÀÏ=ÒAßAÖ7Ü�à{ß�Î�Ó÷èÐ�ß�Ï7Û�Î�Ï7ëAÎ�Ó�îjÜ�Ú{Ð�Î�æ¶Ñ�ÒAÔêÖ�Û�Ü�Ö1ÕãÖ�Ñ�Ð�Ï�Ö�Ð�Ñ�ÎAï$V�à{ç�Ð�Ñ�Î�þeç�à{î�ÎGÕÜ�ß­Î)U�Ü�Ô$å�Ú|γÒ�æ�ô®Û�Î(Ñ�ÎEÔ�à�Õ�Õ�à|ß�çzÏ7Û�ÎGÏ7ëUÕ�Ò�ßíÜzÕãÖ�Ñ�Ð�Ï=Ö�Ð�Ñ�ÎõNÎ(Ú�ÓzÜ�Ú|Ú{Òjô)ÕYÜ�ßÉÜjÖ�Ö�Ü�Ï7ëAÎ(Ñ1Ö�Ò§Ï�Ü�Ð�Õ�Î$Ö�Û�Î ü ͧÖ�Ò!�kÐ�Ô$åÀÖ�ÒÜ�ß³Ü�Ñ�×�à·Ö�Ñ�Ü�Ñ�Ø�Ú{ÒUÏ�ÜjÖ�à|ÒAßEà{ß�Ô$Î�Ô�Ò�Ñ�Ø�ïð�×�ÕkÖ�Ñ�ÜAÏ�Ö�Ú|ØAè]à|æ�Ü$ÕãÖ�Ñ�Ð�Ï�Ö�Ð�Ñ�Î à{Õ4Ö7Ü�à{ßAÖ�Î�Óvè�Ü�Ú|ÚQÒ�æ�à·Ö7ÕqÏ=Ò�ß�â

Ö7Ü�à{ß�Î�ÓÇÓ�ÜjÖ7ÜeÕ�Û�Ò�Ð�Ú�Ó&×QÎ$ÜAÕ�ôµÎ(Ú{Ú�ï ó ÒEÕ�Ð�å�åQÒ�Ñ�Ö¹Õ�Ð�Ï7Û±Ý�à|ß�âÛ�Î(Ñ�à·Ö�Î�Ó�ézÜjÖãÖ�Ñ�à{×�УÖ�Î�Õ�è�ôµÎEÔ�Ò£Ó£à|õ�Î�ÓÞÖ�Û�Î ùzú Õ�Ø£ÕkÖ�Î(Ô Ö�ÒÜ�Ú|Ú{Òjô-Î�UUÖ�Î(ßNÕãà{Ò�ß�ÕµÖ�Ò.ÜjÖ�Ö�Ü�Ï7Û&Ü�æ¶Ð�ß�Ï=Ö�à{Ò�ß�Ö�Ò�Ò�×"�kÎGÏ�Ö�Õ®Ö�Û�Ü�ÖÖ�Û�Î(Ø�Ö�Ñ�ÜAÏ7ë9ï ó Û�à�Õ æ¶Ð�ß�Ï=Ö�à{Ò�ßÉÏ=Ò�ß]Ö�Ñ�ÒAÚ{Õ�Û�Òjô Ü�ßUØ�Ô�Î(Ô�×QÎ(ÑÒ�æAÖ�Û�ÜjÖ�Ò�×"�kÎGÏ�Ö÷à{ß�Û�Î�Ñ�à|Ö�Õ�ÕkÖ7ÜjÖ�Î�æ¶Ñ�ÒAÔ-Ö�Û�Î�×�ÜAÕãÎ�ÒA×"�kÎ�Ï=Ö�ï ó Û�Îæ¶Ð�ß�Ï�Ö�à|ÒAßzà�ÕYÏ(Ü�Ú|Ú{Î�ÓzÒ�ßÉÓ£Î(Ô�Ü�ß�ÓÇô®Û�Î(ßÂܳÔ$Î�Ô�×QÎ(ÑYà�ÕYÜ�Ï=âÏ(Î�Õ�ÕãÎGÓ�æ¶Ò�Ñ4Ö�Û�Î�õ�Ñ7ÕãÖiÖ�à{Ô�Î�s£à|ÖµÑ�Î=Ö�Ð�Ñ�ß�Õ4Ö�Û�ιÕkÖ7ÜjÖ�Î�à{ßeô®Û�à�Ï7ÛÖ�Òzå�Ú{ÜAÏ=ÎEÖ�Û�γÔ�Î(Ô�×QÎ(Ñ ø à·æ¹Ü�ßUØ û ï ó Û�ÎEÑ7Ü�ß�çAÎEÏ7Û�ÎGÏ7ë�Î�Ñ�� Õà{ß�Û�Î�Ñ�à|Ö�ÎGÓ�ÕkÖ7ÜjÖ�εæ¶Ð�ßNÏ�Ö�à{Ò�ß�à�Õ�Ï�Ü�Ú{Ú|ÎGÓ�ô®Û�Î�ß�Î(îAÎ(Ñ�Ü1õ�Î�Ú{Ó$à{ß�ÜÖ7Ü�à{ß]Ö�Î�Ó�ÕkÖ�Ñ�ÐNÏ�Ö�Ð�Ñ�εà{Õ�ÜAÏ(Ï(Î�Õ�ÕãÎGÓ�Ü�ß�Ó$Õ�à|Ô�å�Ú{Ø�å�Ú�Ü�Ï(Î�ÕIÕãà{ç�ß�Î�Óà{ß]Ö�Î�ç�Î(Ñ1Ô�Î(Ô�×NÎ�Ñ�Õ1à{ßÇÖ�Û�Î8�_� �� �Pa;�³ÕkÖ7ÜjÖ�Î$Ü�ß�Ó§Ð�ßNÕãà{ç�ß�ÎGÓà{ß]Ö�Î�ç�Î(Ñ7Õµà|ß³Ö�Û�Î ��a(a;� � �EÕkÖ7ÜjÖ�Î.a#�#%$ _���(a�� ����a��v\� 7a���� ��\ � (b \� �^+b�#�# ^a(\Pa�^a�����a�� ��3_��P_� �� �a�� b�n^(���5�(�P^a!: �� � �Pa��a�^7`A ���a�� �����a�^� ,�a����b,�_��a>�;` �����(^a(a[\���&

\ ��`�� � (b � �n��b / ��a�� � \�� �^Pa��(�P^(�0�ana;���7�;�'�

Page 9: Using Programmer-Written Compiler Extensions to Catch Security

� �����T��� 'C����� � � �������� !��7"�� �10����7������-�������- ��.�� /��)��*�7��- ��-�D�.��7-�/[���

��1@24��-C5 6��CD�2�����?@= :,0�-�"�.@= "���B�! -�1@2�07- "�.(E�EN�N �ED�����H�I�6CKnE

� !�.�# ��Dj��'nM��1@24��-C5 67-�# .�2�5���R�V�6�D���- "C.�"�S�0�-�"�.�U����7���C8�W���5��@=�����?@=

"���B ! -�1@2�� I�V�W�,�W I��(EjE N�N �ED���� H�I�6CK(E� !�.�# ��Dj��'nM�����

�CD .F��-C5 6��CD 2)�CD .[����?@=A���������7,�. ��5@=A�CD .F"���B(E���CD . �� @M�� N ��-�5 6 ,�1��7-98(,�#�"�!�� 2;��5@= 2; 7- �C�F�7E�����?@= "���B(EPM��1 2��� �#�&�E�� !�.�#���D��ED���� H�I�6CK@M! / "�! � !�.�#���D[�� @M�

V�à|çAÐ�Ñ�Î$ÿ a ú ÒAߣõNÓ£Î�ßAÖ�à{Ü�Ú|à|ÖkØ&×�Ñ�Î�ÜAÏ7ÛzÏ(Ü�Ð�ç�Û]Ö¹×UØÇÏ=ÒAÔ$å�УÖãâà{ß�çeçAÚ|ÒA×�Ü�Ú÷Ð�ßAÖ�Ñ�ÐNÕkÖ�Î�Ó§Õ�Ò�Ð�Ñ7Ï=ÎGÕ(ï ó Û�Î�Ï7Û�ÎGÏ7ë�Î(Ñ)Ï�Ü�Ú�Ï=Ð�Ú�ÜjÖ�Î�ÕÖ�ÛNÜjÖx�7���P�� ��eÖ�Ñ7Ü�ßNÕãà|Ö�à{î�Î�Ú|سÖ�Ü�à|ß]Ö7Õ à|Ö�Õ1Õ�Î�Ï=ÒAß�ÓÇÜ�Ñ�çAÐ�Ô�Î(ß]Ö�è����b5�9èUÜ�ß�ÓWXNÜ�ç]Õiô®Û�Î(ß ���b��à{ÕµÐ�Õ�Î�ÓEÜ�ÕqÜ�ßEÜ�Ñ�Ñ�ÜLØ$à|ßNÓ£Î)UvèÖ�Û�Î(Ñ�Î(×UØbå�Ñ�ÒjîUà�Ó£à|ß�çÉÖ�Û�ÎzÐ�ÕãÎ�Ñ.ô®à|Ö�Û-Ü�Ñ�×�à|Ö�Ñ7Ü�Ñ�ØÞà{ߣæ¶ÒAÑ�Ô�ÜjâÖ�à{Ò�ß�ï

a�Pb�a^a��(�P^����_� �� �Pa;� �

ú Ð�ÕãÖ�ÒAÔ$à{á(ÎGÓYÕkÖ7ÜjÖ�Î�à|ß�Û�Î(Ñ�à·Ö7Ü�ß�Ï(Î�Ô�Ü�ë�ÎGÕ9Ö�Û�Î4Ï7Û�Î�Ï7ëAÎ(ÑvÔ�ÐNÏ7ÛÏ=Ú{Î�Ü�ß�Î(ÑGï

�)� � � *0/�"%$���,$86 =�" �3-)$��� � * �� (:)2 & 2

ó Û�Î�Ñ7Ü�ß�çAÎ�Ï7Û�Î�Ï7ëAÎ(Ñ1õ�ß�Ó�Õ�Î(Ñ�Ñ�ÒAÑ�Õ Ð�Õ�à|ß�ç&×QÒ�Ö�ÛÉÚ|Ò£Ï(Ü�ÚiÜ�ßNÓà{ßAÖ�Î(Ñ�â�å�Ñ�Ò£Ï=ÎGÓ£Ð�Ñ7Ü�Ú¹Ü�ß�Ü�Ú|Ø£Õ�à{Õ ø ô®Û�à{Ï7ÛäÏ(Ü�ßXÕ�å�Ü�ß-æ¶Ð�ßNÏ�Ö�à{Ò�ßåQÒ�à{ßAÖ�Î(Ñ7Õ û ïêö Û�à|Ú{ÎÂÚ{ÒUÏ�Ü�ÚYÜ�ßNÜ�Ú{ØUÕ�à�ÕeõNß�Ó�Õ&Ô�Ü�ßUرÎ�Ñ�Ñ�Ò�Ñ7Õ�èà|Ö�Ô�à{Õ�Õ�Î�ÕYÖ�ÒUÒÇÔ�Ü�ßUØÀÒ�Ö�Û�Î(Ñ7Õ(ï bPßF��à|ßUÐ Uvè�Ú{Ò£Ï(Ü�ÚµÜ�ß�Ü�Ú|Ø£Õ�à{Õæ¶Ò�Ð�ß�Ó ��� ÿ�Î(Ñ�Ñ�Ò�Ñ7Õ(èUô®Û�à{Ú|ιà{ß]Ö�Î(Ñ�â�å�Ñ�Ò£Ï(Î�Ó£Ð�Ñ7Ü�ÚQæ¶ÒAÐ�ß�Ó � q�ï

V�Ñ�Ò�Ô�ÜYÏ=Ú{à|Î�ßAÖ4åNÒAà|ß]Ö�Ò�æ9îUà|Î�ôYèAܹëAÎ(Ø�æ¶ÎGÜjÖ�Ð�Ñ�ήÒ�æQà{ß]Ö�Î�Ñãâå�Ñ�Ò£Ï=Î�Ó�Ð�Ñ�Ü�Ú$Ü�ß�Ü�Ú{Ø£Õãà�Õzà{ÕzÖ�ÛNÜjÖÉà·Ö­Ü�Ú{Ú{Òjô)Õ§Ö�Û�ÎíÏ(Ú|à{Î(ß]ÖÉÖ�ÒÒ�ß�Ú|ØÂÕ�Ð�å�å�Ú{ØÉÖ�Û�ÎÙÝ�×�Ü�Õ�Î�é&Ð�ß�Õ�Ü�æ¶Î³Õ�Ò�Ð�Ñ�Ï(Î�Õ�Ü�ß�ÓÂÖ�Ñ�ÐNÕkÖ�à|ß�çÕ�à|ß�ë£Õ�ï ó Û�ÎeÏ7Û�ÎGÏ7ë�Î�ÑYÖ�Û�Î�ßÂÐ�Õ�Î�Õ�à{ß]Ö�Î�Ñãâ�å�Ñ�ÒUÏ(Î�Ó£Ð�Ñ�Ü�ÚiÜ�ß�Ü�Ú·âØ£Õãà�Õ�Ö�Ò­Ü�УÖ�Ò�Ô�ÜjÖ�à{Ï�Ü�Ú{Ú|ØÞÏ(Ò�Ô�å�УÖ�ΧÜ�Ú{Ú)Ò�Ö�Û�Î(Ñeå�Ñ�Ò£Ï(Î�Ó£Ð�Ñ�Î�ÕÖ�ÛNÜjÖ�Ï=ÒAÐ�Ú�ÓÇÖ�Ñ�Ü�ß�Õ�à·Ö�à|îAÎ(Ú{اå�Ñ�ÒUÓ�Ð�Ï=Î�ÒAÑ�Ï=Ò�ßNÕãÐ�Ô�Î.Ó�Ü�Ö�Ü�×UØÑ�Î�Ü�Ï7Û�à|ß�ç�Ö�Û�Î�Õ�Î�×�ÜAÕãÎ�Ñ�ÒAУÖ�à{ß�Î�Õ�ï V�à|çAÐ�Ñ�Î�ÿ�ç�à{î�ÎGÕ)ÜA�÷à{ßUÐ UÎ)U�Ü�Ô$å�Ú|Î&Î�Ñ�Ñ�Ò�Ñ.Ï�Ü�Ð�çAÛAÖ.ÐNÕãà{ß�ç­à{ß]Ö�Î(Ñ�â�å�Ñ�Ò£Ï(Î�Ó£Ð�Ñ7Ü�Ú)Õ�Ò�Ð�Ñ�Ï(ÎÏ(Ü�Ú{Ï(Ð�Ú�ÜjÖ�à{Ò�ßNÕ(ï�C�Î(Ñ�Î�èLÖ�Û�Î������P�� �� æ¶Ð�ß�Ï�Ö�à|ÒAß÷èjÐ�Õ�Î�Ó¹Ö�Ò�Î�Ô�УâÚ�ÜjÖ�Î [ ÍP � Õ �����P�� ��vèGà{Õ�Õ�à{Ô$å�Ú|Ø�Ü ô®Ñ7Ü�å�åQÎ(Ñ�æ¶Ò�Ñ�Ö�Û�ήÏ(Ü�Ú{ÚUÖ�Ò�����n� \(^��` ��b�a�^�ï ó Û�ÎiÏ7Û�Î�Ï7ëAÎ(Ñ÷Ï�Ü�Ú�Ï=Ð�Ú�ÜjÖ�Î�Õ9Ö�Û�ÜjÖo�����P�� ��à�Õ�ÜYÕãÒAÐ�Ñ7Ï=Î�è�å�Ú{ÜAÏ=ÎGÕ����b�Yà{ß�Ö�Û�Î)Ö�Ü�à{ß]Ö�ÎGÓ$ÕãÖ�Ü�Ö�ÎAèAÜ�ßNÓ�Ö�Û�Î(ßXNÜ�çAÕqô®Û�Î�ß ����b��à{Õ®ÐNÕãÎGÓ.Ö�Ò�à|ß�Ó�Î)UEà{ß]Ö�Ò�Ü�ß�Ü�Ñ�Ñ7ÜLØ�ï

ÍUà{Ô�à|Ú�Ü�Ñ�Ú|ØAèUÖ�Û�Î�Ï7Û�Î�Ï7ë�Î�ѵõ�ß�Ó�Õ)Ü�Ú|Ú�Ñ�ÒAУÖ�à{ß�Î�Õqô®Û�ÒAÕ�ιÜ�Ñãâç�Ð�Ô$Î�ß]Ö�Ï=Ò�Ð�Ú{ÓÀÑ�Î�Ü�Ï7ÛÉܳÖ�Ñ�Ð�ÕãÖ�à{ß�ç§Õ�à|ß�ë9ï b�æ®Ü�ßUØÇîjÜ�Ñ�à{Ü�×�Ú{Î×QÎ�Ï=ÒAÔ�Î�Õ�Ö�Ü�à|ß]Ö�Î�Óvè�Î�à·Ö�Û�Î(Ñ�×QÎ�Ï�Ü�Ð�Õ�εà·Ö�à�ÕIÜ1Õ�Ø£ÕkÖ�Î(Ô Ï�Ü�Ú{ÚUå�ÜjâÑ7Ü�Ô�Î=Ö�Î(ÑGèQÒAÑ ×QÎ�Ï�Ü�Ð�Õ�Î$à·Ö¹à{Õ1Ñ�Î�ÜAÓ&æ¶Ñ�Ò�Ô ÜeÚ{Ò£Ï(Ü�Ú�ÒAÑ çAÚ|ÒA×�Ü�Ú

��� ������� > ��� � >���1�"�� ��- ��.7/����+*)"�6�"�, ��- ��. /z�����"<8n/ �CD ���? !F/�-�D�?"C6�"�, ��-���.7/+2�#�D�"���?�D !��j1��@= #�D�"���?�D7!��j� 8��@=

#�D�"���?�D7!��F����?�E�������1���/�5 N�1�? !�.@2;1��(EPM��1 2 � 1���/�5nE

?7-�.7- -�# .�M�����!���� -�� N 1���/�5���R�1 ,�-�5���R���- ��.7/ 2 ������=>�<8��@=c����?(EM

�����"C.7��.���� �%D .�%5���, �C57/�, ��- �C.7/+2 ������=A#�D�"���?�D !�� �<8��@=

#�D�"���?�D !��F����? E�������5 � 0[N Z7!� �L ��$�/�!�S;�<8���U@M��1@2�5 � 0nE�ED�����,�LAD�,CJ�Y�G�V@2;��� = ����?�=x5 � 0�=

"���B ! -�1�24����� 07��D�Y�.���E�EMV�à{ç�Ð�Ñ�Î ��� a bPß]Ö�Î�Ñãâ�å�Ñ�Ò£Ï=Î�Ó�Ð�Ñ�Ü�ÚÇæ¶Ð�ß�Ï�Ö�à|ÒAß�åQÒ�à{ß]Ö�Î�Ñ Î(Ñ�âÑ�Ò�ÑXÖ�Û�ÜjÖ Ï�Ü�ß Ï=Ñ7Ü�Õ�Û Ö�Û�Î ÕãØ£ÕãÖ�Î�Ô Ò�Ñ ×�Ñ�Î�ÜAÏ7Û�Ï(Ò�ߣõ�âÓ�Î(ß]Ö�à�Ü�Ú{à·ÖkØAï ó Û�Î îjÜ�Ú{Ð�Î ��`��/Ï=ÒAÔ$ÎGÕÙæ¶Ñ�Ò�Ô Ö�Û�Î ÐNÕãÎ�ÑÜ�ß�Ó/à{ÕÙå�ÜAÕ�Õ�Î�Ó/Ð�ß�Ï7Û�Î�Ï7ë�ÎGÓ Ö�Ò#Ö�Û�Îäæ¶Ð�ßNÏ�Ö�à{Ò�ßêåQÒ�à{ß]Ö�Î(ÑÏ�Ü�Ú{Ú \� ��7� g[\ ��� g 7���� ��ï ó Û�Î Ï7Û�ÎGÏ7ë�Î�ÑCÎ�Ô$à|Ö�Õ Ü�ßÎ�Ñ�Ñ�Ò�ÑäÕ�à|ß�Ï(Î Ö�Û�Î åQÒ�à{ß]Ö�Î�Ñ Ï(Ü�ß åQÒ�Ö�Î(ß]Ö�à�Ü�Ú{Ú|Ø åNÒAà|ß]Ö Ö�Ò����� ��� � 7���� ��ô®Û�à�Ï7Û�Ð�Õ�Î�Õ ��`���Ð�ß�Õ�Üjæ¶Î�Ú|ØAï

Õ�à{ß�ë9è(Ö�Û�ÎiÏ7Û�ÎGÏ7ë�Î(Ñ9ô®à{Ú|Ú�æ¶Ò�Ú{Ú|ÒjôÉÜ�Ú{Ú�Ï�Ü�Ú{Ú{Õ9Ö�Û�à�Õ÷Ó�ÜjÖ7Üqà{Õ�å�Ü�Õ�Õ�Î�ÓÖ�Ò�èHXNÜ�çAç�à{ß�çYà|æ÷à·Öµà{Õ4Ð�Õ�Î�Ó�à{ß�Ï=ÒAÑ�Ñ�Î�Ï=Ö�Ú{Ø�ï ó Û�Î Õ�Î�Ï(Ð�Ñ�à|ÖkØ�Û�Ò�Ú{Îà{ß V�à{ç�Ð�Ñ�Î � à�ÕqÒ�ß�ιÎ)U�Ü�Ô$å�Ú|ÎYÏ(Ü�Ð�ç�Û]Ö®×UØ.Ö�Û�à{Õ®Ü�ß�Ü�Ú{Ø£Õãà�Õ�ï

bPß]Ö�Î�Ñãâ�å�Ñ�Ò£Ï=Î�Ó�Ð�Ñ�Ü�ÚAÜ�ß�Ü�Ú{Ø£Õãà�Õ�ôµÒ�Ñ�ë£Õ�ÜAÕIÜ)ÖkôµÒ�â�å�Ü�Õ�Õ÷å�Ñ�Ò�âÏ(Î�Õ�Õ(ï ó Û�Î�õ�Ñ�ÕãÖ4åNÜ�Õ�Õ4Ï(Ò�Ô�å�УÖ�Î�ÕµÕãÐ�Ô�Ô�Ü�Ñ�à{Î�Õ4Ò�æ�Ü�Ú{Ú9Ï(Ü�Ú�Ï=Ð�âÚ�ÜjÖ�Î�Ó³ÕãÒAÐ�Ñ7Ï=Î�ÕqÜ�ß�Ó�Õãà{ß�ë£Õ®Ü�Õµæ¶ÒAÚ|Ú{Òjô)Õ�a� ï b�Ö4Ñ�Ð�ß�Õ4Ü�ß ùzú Î�U]Ö�Î(ß�Õ�à{Ò�ß�Ö�Û�ÜjÖµÎ(Ô�à·Ö7ÕiÜ�Ï(Ü�Ú{Ú{ç�Ñ7Ü�å�Ûæ¶Ò�ÑqÖ�Û�ÎYÎ(ß]Ö�à{Ñ�Î ü Ívï

k£ï b�Ö�Ö�Û�Î(ß�Õ�Ð�å�å�Ú|à{Î�Õ÷Ö�Û�Î4Ú|à�ÕkÖ�Ò�æ�Ñ�Ò]Ò�Ö�ÕãÒAÐ�Ñ7Ï=Î�Õ�Ü�ß�Ó�Õ�à{ß�ë£ÕÖ�ÒÇÜ�ß ùzú Ñ�Î�Ú{Ü�U�ÜjÖ�à{Ò�ßÀå�Ñ�Ò�çAÑ�Ü�Ô³è�ô®Û�à{Ï7ÛÂÐNÕãÎGÕYÖ�Û�ÎÎ(Ô�à|ÖãÖ�ÎGÓ�ç�Ú{Ò�×�Ü�Ú�Ï(Ü�Ú|Ú{ç�Ñ7Ü�å�Û�Ö�Ò�Ï=Ò�Ô�å�Ð�Ö�ÎqÖ�Û�ήÖ�Ñ7Ü�ß�Õ�à|âÖ�à{î�Î�Õ�Î=Ö4Ò�ævæ¶Ð�ß�Ï=Ö�à{Ò�ß�Õ ø Ü�ß�Ó$Ö�Û�Î�à|ÑqÜ�Ñ�ç�Ð�Ô$Î�ß]Ö�Õ û Ö�Û�Ü�ÖÏ=ÒAÐ�Ú{ÓEÑ�Î�Ü�Ï7ÛEÖ�Û�Î�Õ�Î1Ñ�Ò�Ð�Ö�à{ß�Î�Õ�ï

u�ï ó Û�Î�Õ�ÎYÏ(Ü�Ú{Ï(Ð�Ú{Ü�Ö�ÎGÓEÕ�Ò�Ð�Ñ7Ï=ÎGÕqÜ�ß�Ó³Õãà{ß�ë£Õ®Ü�Ñ�Î1Î(Ô�à·Ö�Ö�ÎGÓà|ߧÖkô4Ò�Ö�Î)UUÖ�õNÚ|ÎGÕ�Ü�Õ)Ö�Û�Ñ�Î(Î�Ö�Ð�å�Ú|ÎGÕ�çAà|îUà{ß�ç a ø � û Ö�Û�Îæ¶Ð�ß�Ï=Ö�à{Ò�ßÇßNÜ�Ô�Î�è ø k û Ö�Û�Î�Ü�Ñ�ç�Ð�Ô$Î�ß]Ö�è ø u û Ö�Û�Î�å�ÜjÖ�ÛÖ�Ò�Ö�Û�Î�ÕãÒAÐ�Ñ7Ï=Î1Ò�Ñ)Õ�à|ß�ë ø æ¶Ò�Ñ®Î�Ñ�Ñ�Ò�ÑqÑ�Î(åQÒ�Ñ�Ö�à{ß�ç û ï

ó Û�ιÕ�Î�Ï(Ò�ß�ÓEå�ÜAÕ�ÕµÐ�Õ�Î�ÕµÖ�Û�Î�Õ�Î�ÕãÐ�Ô$Ô�Ü�Ñ�à{Î�Õ4Ö�Ò XQÜ�ç$Î(Ñ�Ñ�ÒAÑ�Õ�ïðµÖ.ÎGÜ�Ï7Ûíæ¶Ð�ß�Ï=Ö�à{Ò�ß Ï(Ü�Ú|Ú Õãà|Ö�Χà|ÖeÏ=ÒAÔ�å�УÖ�ÎGÕ.ô®Û�Î(Ö�Û�Î�Ñ�Ö�Û�ÎÏ�Ü�Ú{ÚIå�Ñ�Ò£Ó£ÐNÏ=Î�Õ1ß�Î�ô Ö7Ü�à{ßAÖ�Î�ÓÇîLÜ�Ñ�à�Ü�×�Ú|ÎGÕ ÒAÑYÏ=Ò�ßNÕãÐ�Ô�ÎGÕ Î�UUâà�ÕãÖ�à{ß�çeÒAß�Î�Õ ø ÒAÑ ×QÒ�Ö�Û û ï�bPßÇÖ�Û�Î�õ�Ñ7ÕkÖYÏ(ÜAÕãÎ�à·Ö1æ¶Ò�Ú{Ú|Òjô)Õ�Ö�Û�ÎîjÜ�Ñ�à�Ü�×�Ú{Î�Õ�ï bPßEÖ�Û�Î�Õ�Î�Ï=ÒAß�ÓEà·Ö)Î�Ô$à|Ö�Õ�Ü�ß³Î(Ñ�Ñ�ÒAѵÔ�ÎGÕ�Õ�Ü�çAÎ�ïó Û�Î�Ï7Û�ÎGÏ7ë�Î�Ñ Ü�Ú�Õ�Òeæ¶ÒAÚ|Ú{Òjô)Õ)æ¶Ð�ß�Ï�Ö�à|ÒAßzåQÒ�à{ß]Ö�Î(Ñ7Õ1à|ßÉÜ�Ó£â

Ó�à·Ö�à|ÒAß­Ö�ÒÉÕ�à|Ô�å�Ú{γÏ�Ü�Ú{Ú{Õ�ï[ Ð�Ñ�à{ß�çzÖ�Û�ÎEõ�Ñ7ÕkÖ�å�ÜAÕ�Õ$Ü�×QÒjî�ÎAè

Page 10: Using Programmer-Written Compiler Extensions to Catch Security

à|Ö�Ñ�ÎGÏ=ÒAÑ�Ó�Õ�Ü�Ú{Ú÷æ¶Ð�ß�Ï=Ö�à{Ò�ß&åQÒ�à{ß]Ö�Î(Ñ1Ü�Õ�Õãà{ç�ß�Ô$Î�ß]Ö�Õ®ÒAÑ)à|ß�à·Ö�à{Ü�Ú·âà{á�ÜjÖ�à|ÒAß�Õ�ï Ð�Ñ�à{ß�ç³Ö�Û�Î�Õ�Î�Ï(Ò�ß�ÓÇå�Ü�Õ�Õ�èvà·Ö�Ï7Û�ÎGÏ7ëUÕ æ¶Ð�ßNÏ�Ö�à{Ò�ßåQÒ�à{ßAÖ�Î(ÑIÏ(Ü�Ú|Ú�Õ�×UØYÕ�Î(Î(à{ß�ç à·æ�Ü�ß]عÑ�Ò�УÖ�à|ß�Î�Ö�Û�Î4åQÒ�à{ß]Ö�Î(ÑIÏ=ÒAÐ�Ú�ÓÑ�Î=æ¶Î(Ñ�Î(ßNÏ=ÎYà�Õ)Ò�ߧÜ�Õ�Ð�Ô�Ô�Ü�Ñ�ØeÚ{à{ÕãÖ1Ü�ß�Ó³Î(Ô�à|Ö�Õ1Ü�ß�Î(Ñ�Ñ�ÒAÑ®Ò�ÑÖ�Ü�à|ß]Ö7ÕµÖ�Û�Î�Ü�Ñ�çAÐ�Ô�Î(ß]Ö)Ü�Õqß�Î�Î�Ó£ÎGÓvï

V�à|çAÐ�Ñ�Î ��� çAà|îAÎ�Õ�Ü�ßíÎ(Ñ�Ñ�ÒAÑ$Ï�Ü�Ð�çAÛ]Ö�Ö�Û�à{Õ.ôµÜLØAï C)Î�Ñ�ÎÜÇÖ�Ü�à{ß]Ö�ÎGÓÞîjÜ�Ú{Ð�Î���`��Éà�Õ$å�Ü�Õ�Õ�Î�ÓÂÖ�ÒÂܧæ¶Ð�ßNÏ�Ö�à{Ò�ßíåQÒ�à{ßAÖ�Î(Ñ\� �� � gF\ ��� g� ���� ��ï ó Û�ήÏ7Û�Î�Ï7ëAÎ(ÑIÏ=ÒAÔ$åNÜ�Ñ�Î�Õ�Ö�Û�εæ¶Ð�ßNÏ�âÖ�à{Ò�ßNÕ§Ö�Û�ÎÞåQÒ�à{ß]Ö�Î(ÑÉÏ(Ü�ß Ñ�Î=æ¶Î(Ñ�Î(ßNÏ=ÎÞÜ�çAÜ�à{ß�ÕãÖ§Ö�Û�ÎÞÚ{à{ÕãÖÀÒ�ææ¶Ð�ß�Ï=Ö�à{Ò�ß�Õ1ô®Û�Ò]ÕãÎ�Ü�Ñ�ç�Ð�Ô$Î�ß]Ö�Õ)Ñ�Î�ÜAÏ7ÛÇÜeÖ�Ñ�Ð�ÕkÖ�à|ß�çEÕ�à|ß�ë9ï�b�ÖÎ(Ô�à|Ö�Õ1Ü�ß&Î�Ñ�Ñ�Ò�Ñ�Õ�à{ß�Ï=ÎYÖ�Û�Î�åQÒ�à{ß]Ö�Î�Ñ Ï(Ü�ß&Ñ�Î(æ¶Î(Ñ�Î(ß�Ï(Î�Ü�Ñ�Ò�УâÖ�à{ß�Î ø ����� ��� � 7���� � û Ö�Û�Ü�Ö�Ð�ÕãÎGÕ�Ö�Û�Î ��`��YÜ�Ñ�ç�Ð�Ô�Î(ß]ÖIÐ�ߣâÕ�Üjæ¶Î(Ú{Ø�ï

�)� � � �� 2<" � 6�2 &(/8& '�"�2

öÀÎ4çAÎ(ß�Î�Ñ�Ü�Ú|Ú{Ø ô®Ñ�à|Ö�Î4Ï7Û�Î�Ï7ë�Î�Ñ�Õ�×UØ õNÑ�ÕãÖ�×�Ð�à|Ú�Ó£à{ß�ç1Ü Õãà{Ô�å�Ú{Î�èôµÎ�Ü�ë&îAÎ(Ñ7Õãà{Ò�ß�ï b�æµÖ�Û�à�Õ1õ�ß�Ó�ÕYÎ(ß�ÒAÐ�ç�Ûz×�Ð�ç]Õ1Ö�Ò&×QÎ$à{ß]Ö�Î�ÑãâÎ�ÕãÖ�à{ß�ç§ôµÎ.Ô�Ü�ëAÎ�à·Ö$åNÎ�Ñãæ¶ÒAÑ�Ô Ó£Î�Î(åQÎ(Ñ�Ü�ß�Ü�Ú{Ø£Õãà�Õ�ï � Ü�ÑãÖ�Ò�æÖ�Û�à{Õ1å�Ñ�Ò£Ï=Î�Õ�Õ à{Õ1Ô�Ò£Ó£à·æ¶ØUà{ß�çEÖ�Û�Î�Ï7Û�Î�Ï7ëAÎ(Ñ�Ö�Ò³Ñ�ÎGÓ£Ð�Ï=Î�æoÜ�Ú�ÕãÎåQÒAÕ�à·Ö�à|îAÎ�Õ�ïbò�Õ�Ð�Ü�Ú|Ú{Ø�èiæoÜ�Ú�ÕãÎ�åQÒAÕ�à·Ö�à|îAÎ�Õ$ô®à|Ú{Ú)Ï=ÒAÔ�Îeæ¶Ñ�Ò�Ô ÜÕ�Ô�Ü�Ú|Ú1ßUÐ�Ô�×QÎ(ѳÒ�æ�Õ�Ò�Ð�Ñ�Ï(Î�Õ�è®ô®Û�à{Ï7ÛXÏ(Ü�ß±×NÎÀÕãÐ�å�å�Ñ�Î�Õ�ÕãÎGÓô®à|Ö�Û.Ö7Ü�Ñ�ç�Î(Ö�Î�Ó�Ï7Û�Î�Ï7ë�Î�Ñ�Ô�Ò£Ó£à·õQÏ(ÜjÖ�à|ÒAß�Õ�ïFbPßeÖ�Û�Î1Ï(Ü�Õ�ήÖ�Û�ÜjÖÖ�Û�Î(Ñ�Î1Ü�Ñ�Î Ò�ß�Ú{Ø.ÜYæ¶Î�ô-Î(Ñ�Ñ�Ò�Ñ7Õ�Ï(Ü�Ð�ÕãÎGÓ.×UØ.Ü�Õ�à{ß�ç�Ú{Î�æ¶ÎGÜjÖ�Ð�Ñ�ÎôµÎ®Ð�ÕãÐNÜ�Ú{Ú|Ø�Ó£ÒYß�Ò�Ö4Ï7Û�Ü�ß�ç�εÖ�Û�Î Ï7Û�Î�Ï7ëAÎ(ÑGï�bPß�ÕãÖ�ÎGÜ�Ó$ô4Î�Ð�ÕãÎÝãÛ�à{ÕãÖ�ÒAÑ�Ø£é$Ö�Ò³Î(ßNÕãÐ�Ñ�ÎYÖ�Û�ÜjÖ¹ô4Î�Ò�ß�Ú{سà|ß�Õ�åQÎ�Ï�ÖYÜ�ßÇÎ(Ñ�Ñ�ÒAÑ)Ò�ÑæoÜ�Ú�Õ�Î�åQÒAÕ�à·Ö�à|îAÎ�ÒAß�Ï=ÎAï$V�Ò�Ñ1Î(Ñ�Ñ�ÒAÑ�Ñ�Î(åQÒ�Ñ�Ö�à{ß�ç�èQô4Î�ÕãÖ�Ò�Ñ�Î�Î�ÑãâÑ�Ò�Ñ7Õ�à|ßEÜ�ß�ß�Ò�Ö�Ü�Ö�Î�Ó�Ú{Ò�ç]Õ(ï ó Û�ÎGÕãÎ)Ú{Ò�ç]Õ�Ñ�Î(å�Ñ�Î�Õ�Î(ß]ÖiÎ�Ñ�Ñ�Ò�Ñ7Õ�Ü�ÕÜYÖ�Ð�å�Ú{Î Ò�æ÷æ¶Î�Ü�Ö�Ð�Ñ�Î�ÕiÖ�ÛNÜjÖ®Ü�Ñ�Î)Ñ�Î�Ú{Ü�Ö�à{î�Î�Ú|Ø$à|ßUîjÜ�Ñ�à�Ü�ß]Ö4Ð�ßNÓ£Î(ÑÎ�Ó�à·Ö7Õ ø Ö�Û�Î�õ�Ú{Î$Ü�ß�Ó&æ¶Ð�ß�Ï�Ö�à|ÒAßzÏ=ÒAß]Ö�Ü�à{ß�à{ß�ç.Ö�Û�Î$Î(Ñ�Ñ�ÒAÑ�è�Ö�Û�ÎîjÜ�Ñ�à{Ü�×�Ú{Î�Õ�Ü�ß�ÓÉæ¶Ð�ß�Ï=Ö�à{Ò�ßÞÏ�Ü�Ú{Ú{Õ�à|ßUîAÒ�Ú{î�Î�Ó÷è�Î(Ö�Ï�ï û ïÇözÎEÐ�ÕãÎÖ�Û�Î�Õ�Î)Ö�Ð�å�Ú|ÎGÕ�Ö�Ò�Ü�УÖ�ÒAÔ�Ü�Ö�à�Ï(Ü�Ú|Ú{Ø$Ï(Ú{ÜAÕ�Õ�à|æ¶Ø�Î�Ñ�Ñ�Ò�Ñ7Õ�Ü�ßNÓ�æoÜ�Ú�ÕãÎåQÒAÕ�à·Ö�à|îAÎ�ÕiÖ�Û�Ü�ÖµÚ�Ü�ÕãÖiÖ�Ò�Ú�ÜjÖ�Î�Ñ4Ñ�Î(Ú{Î�ÜAÕãÎGÕ(ï [ Î(Ú{Òjô ô4Î1Ó£à{Õ�Ï=ÐNÕ�ÕÖ�Û�ÎYÔ�Ü��kÒ�Ñ®Ï(Ü�Ð�Õ�Î�ÕqÒ�æ�æoÜ�Ú�Õ�Î1åQÒAÕ�à|Ö�à{î�Î�Õ�ï

ó Û�γõ�Ñ7ÕkÖ�à�Õ�Ï=ңӣγÖ�Û�Ü�Ö.Ó£ÒUÎ�Õ�Õ�à|Ô�Ð�Ú·Ö7Ü�ß�Î�Ò�Ð�Õ$Ð�å�åNÎ�ÑãâÜ�ßNÓ¹Ú|ÒjôµÎ(Ñ�â�×QÒ�Ð�ß�Ó�ÕvÏ7Û�ÎGÏ7ëUÕ9ÒAß�Õãà{ç�ß�Î�Ó1à|ß]Ö�Î(ç�Î�Ñ�Õ÷×]Ø1Ï(ÜAÕkÖ�à|ß�çÖ�Û�Î(Ô Ö�Ò1Ü�ß�Ð�ß�Õ�à{ç�ß�ÎGÓ�îjÜ�Ú{Ð�ÎqÜ�ß�Ó$Ó£Ò�à{ß�ç1Ü�ß�Ð�å�åNÎ�Ñãâ�×QÒ�Ð�ß�ÓÏ7Û�ÎGÏ7ëQï'V�Ò�Ñ®Î)U�Ü�Ô$å�Ú|ÎHa

# �0a ��� ��_��(a�� � � ��a��� b : � # \ � ��b7a�^ �(a�� � e����c��b�a�^ ��a�� ���������

^Pa��(�P^(� � f � \ � � �(��b / �a;������b7a�^ �(a � ���������

^Pa��(�P^(� � f �

ó Û�Î�Ï7Û�Î�Ï7ë�Î�Ñ�Ó£à{Ó�ß�Ò�ÖiÒAÑ�à{ç�à{ß�Ü�Ú{Ú{Ø�Ü�Ï�Ï=Ò�Ð�ßAÖ�æ¶ÒAÑ�Ö�Û�à{Õ�à�Ó£à{Ò�Ô�è×�УÖ�ÒAß�Ï=Î�à|Ö�Ó£à�Óvè�Ü�×NÒAÐ£Ö ��� æoÜ�Ú{Õ�Î�åNÒ]Õãà|Ö�à{î�ÎGÕ¹ô4Î�Ñ�Î�Î�Ú|à{Ô�à·âß�Ü�Ö�Î�Ó÷ï

ó Û�Î&Õ�Î�Ï=ÒAß�ÓÞÕ�Ò�Ð�Ñ�Ï(ÎEôqÜ�Õ$×QÎ�Ï(Ü�Ð�Õ�ÎeÖ�Û�Î&à|ß�æ¶Î(Ñ�Î(ß�Ï(γÒ�æô®Û�Ü�ÖqÓ�Ü�Ö�Ü$Ï(Ü�Ô$Î æ¶Ñ�Ò�Ô Ö�Û�Î Ð�Õ�Î(ÑqôqÜ�Õ4Ò�æ¤Ö�Î(ßEÖ�ÒUÒ�çAÎ(ß�Î�Ñ�Ü�Ú\ïó Û�ÎqÏ7Û�Î�Ï7ëAÎ(Ñ�ô4ÒAÐ�Ú�Ó�Õ�Î(Î4Ö�Û�Ü�ÖIÜ�õ�Î(Ú�Ó�Ò�æNÜ1ÕkÖ�Ñ�ÐNÏ�Ö�Ð�Ñ�ÎqÏ(Ü�Ô$Îæ¶Ñ�Ò�ÔXÖ�Û�εÐ�Õ�Î(ÑIÜ�ß�ÓYÖ�Ñ�Î�ÜjÖ�Ö�Û�Îiô®Û�ÒAÚ|ÎqÕkÖ�Ñ�ÐNÏ�Ö�Ð�Ñ�εÜ�Õ�Ö�Ü�à{ß]Ö�ÎGÓà{ß�ÕkÖ�Î�ÜAÓ&Ò�æ �kÐ�ÕãÖ1Ö�Û�Ü�Ö õ�Î�Ú{Ó÷ï ö Û�à{Ú{Î�Ö�Û�à{Õ1Ï=ÒAÐ�ß]Ö�ÎGÓ�æ¶Ò�ѹÕãàPUÒ�æIÖ�Û�Î�æoÜ�Ú{Õ�Î�åQÒAÕ�à·Ö�à|îAÎ�Õ�è�à|Ö ôqÜ�Õ®×QÎ(ß�Î(õNÏ=à�Ü�Ú�ß�Ò�Ö Ö�ÒeÏ7ÛNÜ�ß�çAÎ

Ö�Û�ÎeÏ7Û�ÎGÏ7ë�Î�Ñ�×NÎGÏ(Ü�Ð�ÕãÎeô®Û�Î(ßÂà|Ö�ôqÜ�Õ�Ï=Ò�Ñ�Ñ�Î�Ï�ÖGè�Ö�Û�Î.Î�Ñ�Ñ�Ò�Ñ7ÕôµÎ(Ñ�ÎI^AÐ�à·Ö�Î�ÕãÎ�î�Î(Ñ�Î�ïó Û�Î)Ö�Û�à{Ñ�Ó�Õ�Ò�Ð�Ñ7Ï=ήÏ�Ü�Ô�Îqæ¶Ñ�ÒAÔ Ö�Û�ήæoÜ�Ï=Ö�Ö�ÛNÜjÖ�à|ævÜYÕ�Ð�×£â

Ñ�Ò�Ð�Ö�à{ß�ι×NÒAÐ�ß�Ó�Õ Ï7Û�Î�Ï7ëAÎ�Ó³Ü$Ö�Ü�à{ß]Ö�ÎGÓEîjÜ�Ñ�à�Ü�×�Ú{Î�è�ô4ÎYôµÒ�Ð�Ú�Óß�Ò�ÖÇå�Ñ�Ò�åNÜ�çAÜ�Ö�ÎÉÖ�Û�ÎÞ×QÒ�Ð�ßNÓ�ÕzÏ7Û�Î�Ï7ë-Ð�å Ö�Ò-Ö�Û�ÎíÏ(Ü�Ú{Ú{Î(ÑGïø ó Û�Ò�Ð�ç�Û³ô4ÎYÓ£Ò�å�Ñ�Ò�åNÜ�çAÜ�Ö�Î�Ö�Û�ÎYîjÜ�Ú{Ð�Î�Ó£Òjô®ßEÖ�Ò.Ü�Ú|ÚvÑ�Ò�Ð�âÖ�à|ß�Î�Õ Ö�Û�Î�Ï7Û�ÎGÏ7ëUà|ß�çEÑ�ÒAУÖ�à{ß�Î$Ï(Ü�Ú{Ú�Õ(ï û ó Û�Î(Ñ�Î�ôµÎ(Ñ�Î y�æoÜ�Ú�Õ�ÎåQÒAÕ�à|Ö�à{î�Î�ÕµÒ�æ�Ö�Û�à{Õ®ÖkØ]åQÎ�ïó Û�Î�õ�ß�Ü�Ú]ÕãÒAÐ�Ñ7Ï=ÎIÒ�æUæoÜ�Ú�Õ�Î�åNÒ]Õãà|Ö�à{î�ÎGÕvôµÎ(Ñ�Î�Ñ�Ü�ß�ç�Î(â�Ï7Û�ÎGÏ7ë

Î�Ñ�Ñ�Ò�Ñ7ÕµÒ�ߧÏ(ÒUÓ�ÎYå�ÜjÖ�Û�Õ®Ö�Û�ÜjÖ Ï(Ò�Ð�Ú�Ó�Ò�ß�Ú|ØE×NÎ�Î)U£Î�Ï(УÖ�ÎGÓE×UØÖ�Û�ÎzÕ�Ð�åQÎ(Ñ�â�ÐNÕãÎ�Ñ�ï�özÎÉÏ=ÒAÐ�ß]Ö�Î�Ó Ö�Û�ÎGÕãÎÉÜ�ÕeÔ$à{ß�ÒAÑEÎ�Ñ�Ñ�Ò�Ñ7ÕÑ7ÜjÖ�Û�Î(Ñ�Ö�Û�Ü�ßYæoÜ�Ú�Õ�Î�åNÒ]Õãà|Ö�à{î�ÎGÕ�Õ�à{ß�Ï=ÎiÖ�Û�Î�Ø1ôµÎ(Ñ�Î�èjÜ�Ö�Ö�Û�Îiî�Î�Ñ�ØÚ{Î�ÜAÕkÖGè£×�Ü�Ó³ÕãÖkØ]Ú{Î�ï

�,� � � 2<" *,"%+ � /8&('�"�2

ö Û�à|Ú{ÎeÖ�Û�Î�Ï7Û�Î�Ï7ëAÎ(Ñ�õNß�Ó�Õ$ÜÇÚ�Ü�Ñ�ç�Î.ßUÐ�Ô�×NÎ�Ñ�Ò�æ Ó£àP�QÎ�Ñ�Î�ß]ÖÖkØUåQÎ�Õ®Ò�æ�×�Ð�çAÕ�s�à|Ö�Ô�à�Õ�Õ�Î�Õ®Ò�Ö�Û�Î�Ñ�Õ�ïµözÎ�Ó�à{Õ�Ï=Ð�Õ�ÕqÖ�Û�Î�Ô�Ü�à{ßø ëUß�Òjô®ß û Ï(Ü�Ö�Î(çAÒ�Ñ�à|ÎGÕµ×NÎ�Ú|ÒjôYï� ï®ð�Õ³ÕkÖ7ÜjÖ�Î�ÓÙà{ßCÍUÎ�Ï=Ö�à{Ò�ßvk�èqÖ�Û�ÎÀÏ7Û�Î�Ï7ëAÎ(Ñ.Ï(Ò�ß�Õ�à{Ó�Î(Ñ7ÕÜíîLÜ�Ú|Ð�ÎÉÕ�Ü�ß�à·Ö�à|á�Î�ÓXÜjæ¤Ö�Î�Ñ&×NÎ�à|ß�çÙÏ7Û�Î�Ï7ë�ÎGÓ-Ü�çAÜ�à{ß�ÕãÖÜ�ßUØ&îjÜ�Ú{Ð�Î�Ñ�Ü�Ö�Û�Î�Ñ�Ö�Û�Ü�ßzÖ�Û�Î�Ñ�à{ç�Û]Ö¹îLÜ�Ú|Ð�Î�ï�öÀÎ�Ü�Ñ�ÎÏ=Ð�Ñ�Ñ�Î(ß]Ö�Ú{Ø�Î)U£å�Ú{Ò�Ñ�à|ß�ç�Ö�Û�ÎYÐ�ÕãÎ1Ò�æ�×NÎ�Ú|à{Î=æ�Ü�ßNÜ�Ú{ØUÕ�à�Õ�Ö�ÒÓ£Î(Ñ�à{î�Î�ô®Û�à�Ï7Û§×QÒ�Ð�ßNÓ�Õ�ÐNÕãÎ�Ñ�Õ ×NÎ�Ú|à{Î(îAÎ�Ü�åQÒ�à{ß]Ö�Î�Ñ ÒAÑÑ�ÒAУÖ�à{ß�ιÑ�Î@^]Ð�à{Ñ�ÎGÕ®Ü�ÕqÜ�å�Ñ�Î�Ï=ÒAß�Ó£à|Ö�à{Ò�ß÷ï

k£ï ó Û�Î&ÕãØ£ÕãÖ�Î�Ô<Ò�ß�Ú{ØÂÖ�Ñ7Ü�Ï7ë£Õ�îjÜ�Ú{Ð�Î�Õ$ô®à|Ö�Û�à{ß ÜÇçAà|îAÎ(ßÏ=ңӣγå�ÜjÖ�Û÷ï b�Ö�ô®à|Ú{Ú®Ô�à{Õ�Õ$Î(Ñ�Ñ�ÒAÑ�Õ�ô®Û�Î(Ñ�ÎeÒAß�Î�ÕãØ£ÕãâÖ�Î�ÔêÏ�Ü�Ú{Ú�ÕãÖ�ÒAÑ�ÎGÕ)Ü�Ö�Ü�à|ß]Ö�Î�Ó�îjÜ�Ú{Ð�Î�à{ßÇÜ.Ó�Ü�Ö�Ü.ÕãÖ�Ñ�Ð�Ï=âÖ�Ð�Ñ�ÎzÜ�ß�Ó±ÜbÓ£à �9Î(Ñ�Î(ß]Ö�ÕãØ£ÕãÖ�Î(Ô Ï�Ü�Ú{Ú1Õ�Ð�×�Õ�Î@^]Ð�Î�ßAÖ�Ú|ØÎ)UUÖ�Ñ7Ü�Ï=Ö�ÕµÖ�Û�ÎYîjÜ�Ú{Ð�ÎYÜ�ß�Ó³Ð�Õ�Î�Õqà|Ö�ï

u�ï ó Û�Î�ÕãØ£ÕãÖ�Î(ÔêÚ{ÒAÕ�Î�Õ)Ö�Û�Î�ÕkÖ7ÜjÖ�Î�Õ Ò�æiîjÜ�Ñ�à�Ü�×�Ú{Î�Õ ÕkÖ�Ò�Ñ�Î�Óà|ßNÕãà�Ó£ÎCÕãÖ�Ñ�Ð�Ï=Ö�Ð�Ñ�Î�ÕÞô®Û�Î(ß Ö�Û�Î�Ø#çAÒ Ü�Ï(Ñ�Ò]Õ�ÕÂæ¶Ð�ß�Ï�âÖ�à{Ò�ß±Ï�Ü�Ú{Ú{Õ�ï V�Ò�ÑEÎ)U�Ü�Ô�å�Ú{Î�èqà|æ�ÜÀÖ�Ü�à{ß]Ö�ÎGÓÙîLÜ�Ú|Ð�Χà{ÕÕkÖ�Ò�Ñ�Î�ÓÇà|ßj��`��g �(a7�&Ü�ßNÓ ��`��Eà�Õ¹å�ÜAÕ�Õ�Î�Ó�Ö�Ò³æ¶Ð�ß�Ï�âÖ�à{Ò�ßF\P�n� ���C`����Uè÷Ö�Û�γÕ�Ø£ÕkÖ�Î(Ô ô®à{Ú|Úqß�Ò�Ö�Ñ�Î(Ô�Î(Ô�×NÎ�ÑÖ�Û�Ü�Öt��`��g �(a7��à�ÕqÖ�Ü�à|ß]Ö�Î�ÓEô®Û�à|Ú{Î�Ü�ßNÜ�Ú{Ø]á�à|ß�çx\P�n�Nï

w�ï b�æ÷Ü åNÜ�Ñ7Ü�Ô�Î=Ö�Î(Ñ�à�Õ�à|ß�æ¶Î(Ñ�Ñ�ÎGÓ�Ö�Ò�Ï=ÒAÔ$εæ¶Ñ�Ò�Ô Ö�Û�Î)ÐNÕãÎ�ÑÖ�Û�ÎqÕ�ØUÕãÖ�Î�Ô Ó£ÒUÎ�Õ�ß�Ò�Ö�å�Ñ�Ò�å�Ü�çAÜjÖ�Î�Ö�ÛNÜjÖIà|ߣæ¶ÒAÑ�Ô�Ü�Ö�à{Ò�ßÖ�ÒÇÖ�Û�γÏ(Ü�Ú{Ú{Î(ÑGï V�ÒAÑ�Î�U£Ü�Ô�å�Ú|ÎAè�à·æ)ô®Û�à|Ú{ÎEÜ�ß�Ü�Ú{ØUá(à{ß�ç��_�^ � �� � _�^ / �Uè(Ö�Û�Î4Ï7Û�Î�Ï7ë�Î�Ñ�Ó£Î(Ö�Î(Ñ�Ô�à|ß�Î�ÕvÖ�Û�ÜjÖ _�^ /Ô�Ð�ÕãÖ�Ï=ÒAÔ�Î æ¶Ñ�Ò�Ô Ö�Û�ÎYÐNÕãÎ�Ñ�è�Ï�Ü�Ú{Ú|Î�Ñ�ÕqÒ�æA��_�^eÓ£Ò�ß�Ò�Ö×NÎ�ß�Î=õ�Ö)æ¶Ñ�ÒAÔ Ö�Û�à{Õ®à{ߣæ¶ÒAÑ�Ô�ÜjÖ�à|ÒAß÷ï

ó Û�Î1Ú�Ü�ÕãÖ®Ö�Û�Ñ�Î�ÎYÚ|à{Ô�à·Ö7ÜjÖ�à{Ò�ßNÕ®Ü�Ñ�Î1Ô�Ü�à|ß�Ú{ØEÓ�Ð�ιÖ�Ò�Ö�Û�Î ùzúÕ�Ø£ÕkÖ�Î(Ô à|Ö�Õ�Î(Ú|ækï b�Ö&à�Õ&Ï=Ð�Ñ�Ñ�Î(ß]Ö�Ú{Ø ×NÎ�à|ß�çíÑ�Î(à{Ô�å�Ú{Î(Ô�Î(ß]Ö�ÎGÓÜ�Ñ�ÒAÐ�ß�Ó ÜbÏ=Ò�Ñ�ÎÇÕ�Î=Ö³Ò�æ�Ô�Ò�Ñ�ÎÇåQÒjô4Î�Ñãæ¶Ð�Ú1Ü�ß�Ü�Ú{Ø£ÕãÎGÕ(ï �EUUâÖ�Î(ß�Õ�à{Ò�ß�Õ�Õ�Ð�Ï7ÛÙÜ�Õ$Ö�Û�Î&Ñ�Ü�ß�ç�Î�Ï7Û�Î�Ï7ëAÎ(Ñ�Õ�Û�Ò�Ð�Ú�Ó ø Ô�ÒAÕãÖ�Ú{Ø ûÖ�Ñ�Ü�ß�Õ�å�Ü�Ñ�Î(ß]Ö�Ú{Ø�×NÎ�ß�Î=õ�Ö)æ¶Ñ�ÒAÔ Ö�Û�Î�Õ�ÎYà|Ô�å�Ñ�Òjî�Î�Ô$Î�ß]Ö�Õ�ï

�,�� � � * � & *)+ "%$8$867$�2

<1à{î�Î�ßÀÜEÚ�Ü�Ñ�ç�Î$ß]Ð�Ô�×QÎ(ÑYÒ�æµÎ(Ñ�Ñ�ÒAÑ�Õ�èvÑ7Ü�ß�ëUà{ß�çEÎ�Ñ�Ñ�Ò�Ñ7Õ à{ÕYÜAÕà{Ô�åNÒAÑãÖ7Ü�ß]Ö�Ü�ÕIÎ(Ú{à{Ô$à{ß�Ü�Ö�à{ß�ç1æoÜ�Ú�ÕãÎqåQÒAÕ�à·Ö�à|îAÎ�Õ�ï�öÀήÐ�Õ�ε×QÒ�Ö�Û

Page 11: Using Programmer-Written Compiler Extensions to Catch Security

� � ���T��� � �������� !��7"���D7!�. ��O���D���"��7/������+*4"��7/���,,4�1 !��v�����1@24��-�5 67,�1��7-98n,�#�"�!��@2;:%8(!%8h= �%D 17-+=A"���B ! -�1�2 8(!%8�E�E�E

� !�.�# ��Dj��G H�I�J�K L@M��1 2;��! ���(E��

. !%8�5FN��8n��/�/�- � 2 8(!98���/�!�D@=���H ��,���G�V�X�G�KnEM��1 2 �T.�!%8�5nE

� !�.�# ��D�2���G�X4D�W�G�WnEMV�à|çAÐ�Ñ�Î ��� a ü ×�Ú{àL^]Ð�ÎqÏ7Û�ÎGÏ7ë]à{ß�ç a9Ö�Û�ήӣÑ�à|îAÎ(Ñ�Ð�Õ�Î�ÕA� `�_���(��Ü�Õ®Ü�ßEà{Ô�å�Ú{à{Ï(à·Ö�×QÒ�Ð�ß�Ó�Õ®Ï7Û�ÎGÏ7ëQï

ç�Î�ß�Î(Ñ�à�ÏÞÜ�ßNÓ Ï7Û�Î�Ï7ëAÎ(Ñ�â�Õ�åQÎ�Ï=à|õNÏÂÑ7Ü�ß�ë]à{ß�çNï ó Û�Îíç�Î�ß�Î(Ñ�à�ÏÑ7Ü�ß�ëUà{ß�çEÕãÖ�Ñ7ÜjÖ�à·õ�ÎGÕ1Î(Ñ�Ñ�ÒAÑ�Õ ×�Ü�Õ�Î�ÓÇÒ�ßzÛ�Òjô Î�ÜAÕãØ�Ö�Û�Î(ØzÜ�Ñ�ÎÖ�Ò.Ó�à{Ü�ç�ß�Ò]ÕãÎYÜ�ÕqôµÎ(Ú{Ú�ÜAÕ®Û�Òjô-Ú{à{ë�Î(Ú{Ø.Ö�Û�Î(سÜ�Ñ�Î1Ö�Ò�×QÎYæoÜ�Ú�ÕãÎåQÒAÕ�à·Ö�à|îAÎ�Õ�ï ü Ð�Ñ4Ñ7Ü�ß�ëUà{ß�ç�å�Ú{ÜAÏ=Î�ÕµÚ{Ò£Ï(Ü�ÚQÎ(Ñ�Ñ�Ò�Ñ7Õ�Òjî�Î�Ñ4çAÚ|ÒA×�Ü�ÚÒ�ß�Î�Õ�è�Î(Ñ�Ñ�Ò�Ñ7Õ�Ö�Û�Ü�Ö4ÕãåNÜ�ß$æ¶Î(ô Õ�Ò�Ð�Ñ7Ï=ήÚ{à|ß�Î�Õ�Ü�ß�Ó�Ï=ÒAß�Ó£à|Ö�à{Ò�ߣâÜ�Ú�ÕEÒjî�Î(ÑeÖ�Û�Ò]ÕãÎÇÖ�Û�Ü�Ö�Õ�å�Ü�ß±Ô�Ü�ßUØ�è Î(Ñ�Ñ�ÒAÑ�Õ�Ö�Û�ÜjÖ&Ó£Òíß�Ò�Öà{ß]îAÒ�Ú{î�ιÜ�Ú{à{ÜAÕãà{ß�ç$Òjî�Î�Ñ4Ö�Û�ÒAÕ�Î1Ö�Û�Ü�Ö�Ó£Ò�ï

ü Ð�Ñ�Ï7Û�Î�Ï7ëAÎ(Ñ�â�Õ�åQÎ�Ï=à|õNÏ&Ñ7Ü�ß�ë]à{ß�çbÔ�Ü�Ñ�ë£ÕEÔ�à|ß�ÒAÑ�Î(Ñ�Ñ�ÒAÑå�Ü�ÖãÖ�Î�Ñ�ßNÕ�Ö�ÒÀÓ�à{ÕãÖ�à{ß�ç�Ð�à{Õ�Û­Ö�Û�Î(Ô<æ¶Ñ�Ò�Ô<åQÒ�Ö�Î(ß]Ö�à�Ü�Ú{Ú{ØÂÔ$ÒAÑ�ÎÕ�Î(Ñ�à|ÒAÐ�ÕµÒ�ß�ÎGÕ(ï ó Û�ιÔ�Ü�à{ß³Õ�Ð�Ï7Û³Ó£Î(Ô�Ò�Ö�à|ÒAßEôqÜ�ÕµÎ�Ñ�Ñ�Ò�Ñ7Õià{ߣâî�ÒAÚ|îUà{ß�çeÜ�Ú|Ú{Ò£Ï(ÜjÖ�à|ÒAß�æ¶Ð�ß�Ï=Ö�à{Ò�ß�Õ�ï��¹Î(Ñ�ß�Î(Ú�Ü�Ú{Ú|Ò£Ï(Ü�Ö�à{Ò�ß�æ¶Ð�ßNÏ�âÖ�à{Ò�ßNÕ&Û�ÜLî�ÎÂÜbõZU£Î�ÓXÐ�å�åNÎ�Ñãâ�×NÒAÐ�ß�ÓXÒ�ßXÖ�Û�έÜ�Ô�Ò�Ð�ßAÖ§Ò�æÔ�Î(Ô�Ò�Ñ�Ø$Ö�Û�Î�ØeÜ�Ú{Ú{ÒUÏ�ÜjÖ�Î ÜjÖqÒ�ß�Î�Ö�à|Ô�Î�ï ó Û�Î�Ñ�Î1ôµÎ(Ñ�Î�Ô�Ü�ßUØÏ(ÜAÕãÎGÕ¹ô®Û�Î(Ñ�Î�Ö�Û�ÎeÏ=Ò£Ó£Î.ôqÜ�Õ ø åNÒ]Õ�Õ�à{×�Ú|ØÀÐ�ß�à{ß]Ö�Î�ßAÖ�à|ÒAß�Ü�Ú{Ú{Ø ûÐ�Õ�à|ß�ç¹Ö�Û�Î)Ü�Ú|Ú{Ò£Ï(ÜjÖ�Ò�Ñ�Ö�Ò�ÜAÏ�ÖiÜAÕ�Ü�ß�à|Ô�å�Ú{à�Ï=à|Ö�×NÒAÐ�ß�Ó�Õ�Ï7Û�Î�Ï7ë×UعÑ�Î�Ú|ØUà{ß�ç)Ò�ßYà|Ö�Ö�Ò)æoÜ�à|ÚUÜ�ßNÓ¹Ñ�Î(Ö�Ð�Ñ�ß�Ü���� ��åQÒ�à{ß]Ö�Î(Ñ�ô®Û�Î(ßÜ.Ú�Ü�Ñ�ç�Î�îjÜ�Ú{Ð�Î�ôqÜ�Õ å�Ü�Õ�Õ�Î�Ó&à{ß÷ï ø V�à{ç�Ð�Ñ�Î ��� ç�à{î�ÎGÕ Ü�ߧÎ)UUâÜ�Ô�å�Ú{Î�ï û ö Û�à{Ú|ÎYÎ�Ñ�Ñ�Ò�Ñ7ÕiÒ�æ�Ö�Û�à{ÕµÖkØUåQÎ�Ü�Ñ�Î ß�Ò�Ö®Î)U£å�Ú{Ò�à|Ö�Ü�×�Ú|ÎÕ�Î�Ï=Ð�Ñ�à|ÖkØ�Û�ÒAÚ|ÎGÕ(èAÑ�Î�Ú|ØUà{ß�çYÒ�ß$Ö�Û�Î�Ü�Ú{Ú{ÒUÏ�ÜjÖ�Ò�Ñ�Õ�Î(Î(Ô�Õ�Ö�ÒY×QÎ ÜjÖÚ{Î�Ü�ÕãÖq×�Ü�Óeæ¶Ò�Ñ�Ô Õãà{ß�Ï(Î�Ö�Û�ÎYÕãà{á(ιÏ7Û�Î�Ï7ëAÎ�Óeà{ÕqÜ�ß�Ü�Ñ�Ö�à|æoÜ�Ï=ÖµÒ�æÖ�Û�γÜ�Ú|Ú{Ò£Ï(ÜjÖ�Ò�Ñ�à{Ô�å�Ú{Î(Ô�Î(ß]Ö�Ü�Ö�à{Ò�ß÷ï V�Ð�ÑãÖ�Û�Î(ÑGè�Ñ7ÜjÖ�Û�Î(Ñ�Ö�Û�Ü�ßÑ�Î=Ö�Ð�Ñ�ß�à{ß�ç�Ü�ß$Î�Ñ�Ñ�Ò�Ñ�Ï(Ò£Ó£Î�Õ�ÜLØ]à{ß�ç1Ö�ÛNÜjÖ�Ö�Û�Î)Ð�Õ�Î(Ñ�â�Õ�åQÎ�Ï=à|õ�ÎGÓîjÜ�Ú{Ð�ÎYôqÜ�ÕµÖ�ÒUÒ�Ú�Ü�Ñ�ç�Î�èUÖ�Û�Î�Ï(Ü�Ú|Ú{Î(Ñ®Ò�æ�Ö�Û�Î�Ü�Ú{Ú{ÒUÏ�ÜjÖ�Ò�Ñqô4ÒAÐ�Ú�ÓÔ�ÒAÕãÖ)Ú|à{ë�Î�Ú|ØEÑ�Î(Ö�Ð�Ñ�ß&Ü�ß�Î(Ñ�Ñ�Ò�Ñ®Ï=Ò£Ó£Î�Õ�ÜLØUà|ß�ç$Ö�Û�ÜjÖ®Ö�Û�Î�ë�Î�Ñãâß�Î�Ú�ôqÜ�Õ1ÒAУÖ1Ò�æiÔ�Î(Ô�Ò�Ñ�Ø�ï ó Û�à{Õ1ôµÒ�Ð�Ú�Ó§ß�Ò�Ö1×QÎ$Ö�Û�Î�Ï(ÜAÕãÎÜ�ßNÓEÏ(Ò�Ð�Ú�Ó�Ï(Ü�ÐNÕãιå�Ñ�Ò�×�Ú{Î(Ô�Õµæ¶Ð�Ñ�Ö�Û�Î(Ñ)Ü�Ú{Ò�ß�ç�ï

� *�� ���2)�(��� ������2)6���� } 6&'(�)�

ù Ü�ß]ØíÕãÎGÏ=Ð�Ñ�à|ÖkØ­Ñ�Ð�Ú|ÎGÕ.Ü�Ñ�Î�åNÒUÒ�Ñ�Ú{Ø­Ð�ß�Ó£Î�Ñ�ÕãÖ�ÒUÒ£ÓÙÜ�ß�ÓíÎ�ÑãâÑ7ÜjÖ�à�Ï(Ü�Ú|Ú{ØeÒA×NÎ�Ø�ÎGÓvï ó Û�à�Õ�Õ�Î�Ï�Ö�à|ÒAߧÕãÛ�Òjô)ÕqÖkô4Ò�Ò�æ�Ò�Ð�Ñ�×NÎGÕkÖÎ)U�Ü�Ô$å�Ú|ÎGÕ�Ò�æ�Û�Òjô Ï7Û�ÎGÏ7ë�Î(Ñ7Õ�Ï�Ü�ß­çAà|îAÎEÕ�à|çAß�à|õNÏ(Ü�ßAÖ$å�Ñ7Ü�Ï�âÖ�à�Ï(Ü�Ú�Ú{Î(î�Î�Ñ�Ü�ç�Î$×UØzÜ�Ú{Ú{Òjô®à|ß�ç�ÒAß�Î�åNÎ�Ñ�Õ�Ò�ßÀÖ�Ò&Ð�ß�Ó£Î(Ñ7ÕãÖ�Ü�ßNÓÜ�ßzÒ�×�Õ�Ï=Ð�Ñ�Î�Ñ�Ð�Ú{Î�Ü�ß�Ó§ô®Ñ�à|Ö�Î�ÜEÏ7Û�ÎGÏ7ë�Î�Ñ)Ö�ÛNÜjÖYà{Õ1à{Ô�åNÒ]ÕãÎGÓÒ�ß Ü�Ú|Ú)Ï(ÒUÓ�Î�ï ó Û�Î�õ�Ñ7ÕãÖeÏ=Ò�Ô�ÎGÕ$æ¶Ñ�ÒAÔ Ü�ß ÜjÖ�Ö�ÜAÏ7ë­Ð�Õ�à|ß�çÐ�Õ�Î(Ñ�â�ëAÎ(Ñ�ß�Î(Ú�Ó�ÜjÖ�Ü�Ô$ÒjîAÎ(Ô�Î(ß]Ö�Ñ�Ò�УÖ�à|ß�Î�Õ�è�Ö�Û�Î�Õ�Î�Ï=ÒAß�Ó$æ¶Ñ�Ò�ÔÒjî�Î�ÑCXNÒjô Ò�æ�õZU£Î�ÓUâPÕãà{á(ÎYÜ�Ñ�à|Ö�Û�Ô�Î(Ö�à�Ï�ï

�� � ��9)" "�*,+ /89 ��3" � =�6 �0: � / /�� =��

ó Û�Î�Ð�ÕãÎ�Ñãâ�ë�Î�Ñ�ß�Î(Ú�Ó�Ü�Ö�ÜeÔ$ÒjîAÎ(Ô�Î(ß]Ö�Ñ�Ò�Ð�Ö�à{ß�Î�Õ à|ßzÓ£à �9Î(Ñ�Î(ß]ÖÒ�åQÎ(Ñ7ÜjÖ�à|ß�çÙÕ�Ø£ÕkÖ�Î(Ô�Õ§Õ�Û�Ü�Ñ�Î­Ü Ï=ÒAÔ�Ô$ÒAßäÐ�ß�Ó£Î�Ñ�Ú{ØUà|ß�ç±ÜAÕkâ

� ��������� '%� �!���D ! /�� "�67"���.7/����+*��7-�,�"�6�"���. / , "�.�����.�!�?�6v����CD�.[/�!�D�M�����? !�.7,�#�"�!��@2)/�!�D�=l-�/��7/�!�D�5nEM��1 2)/�!�DnE��

��1 2�/�!�DFR .7��$�/�!���R98n� 4 /�!�DnE/�!�D[N .7��$�/�!���R98n� 4 /�!�D�M

��1@2)��-�5 67,�.7-�,�#�"�!��@2)-�/��� 7��/+=l.7��$�/�!���R��7��. �+=A/�!�DnE�E� !�.�# ��Dj��G H�I�J�K L@M

V�à{ç�Ð�Ñ�Î � k aÂð Ñ7Ü�Ñ�ΧëAÎ(Ñ�ß�Î(Ú1ÕãÎGÏ=Ð�Ñ�à·ÖkØíÛ�ÒAÚ|ÎÇÖ�Û�Ü�Ö³Ü�Ú{Ú{Òjô)ÕÜ�ßÞÜjÖ�Ö�ÜAÏ7ë�Î(Ñ�Ö�Òz×�Ñ�ÎGÜ�Ï7Û­Ï(Ò�ߣõNÓ�Î(ß]Ö�à�Ü�Ú{à·ÖkØAïÂò)å�åQÎ(Ñ�â�×QÒ�Ð�ß�ÓÏ7Û�Î�Ï7ë)ÒAß Ö�Û�Î�à{ß]Ö�Î(çAÎ(Ñ �(a���×�Ð�Ö�ß�Ò®Ú{Òjô4Î�Ñãâ�×NÒAÐ�ß�Ó1Ü�Ú{Ú|Òjô)ÕvÜ�ßÜ�ÖãÖ7Ü�Ï7ë�Î�Ñ1Ö�Ò§Ï=ÒAåUØÇß�ÎGÜ�Ñ�Ú|ØÇÜ�Ñ�×�à·Ö�Ñ�Ü�Ñ�ØÇÜ�Ô�Ò�Ð�ß]Ö�Õ�Ò�æqë�Î(Ñ�ß�Î�ÚÓ�ÜjÖ�Ü$×�ÜAÏ7ë�à|ß]Ö�Ò�Ð�ÕãÎ�Ñ)ÕãåNÜ�Ï=ÎAï

Õ�Ð�Ô�å£Ö�à|ÒAßÙÖ�Û�Ü�ÖEÜ�Ú{Ú|Òjô)ÕeÜjÖãÖ7Ü�Ï7ëAÎ(Ñ7Õ$Ö�Ò­×�Ñ�Î�ÜAÏ7Û Ï=Ò�ß�õNÓ£Î(ß�âÖ�à{Ü�Ú|à|ÖkØ�Ò�ѹà{ßAÖ�Î(çAÑ�à|ÖkØ�×]Ø�Ñ�Î�ÜAÓ£à|ß�çeÒ�Ñ1ô®Ñ�à·Ö�à|ß�ç³Ô�ÐNÏ7ÛÇÔ�Ò�Ñ�ÎÔ�Î�Ô$ÒAÑ�Ø1Ö�Û�Ü�ß�ôµÜAÕ�Ü�ßAÖ�à{Ï(à|åNÜjÖ�ÎGÓeý w%��ï ó Û�ÎqÜjÖ�Ö�ÜAÏ7ë1ôqÜ�Õ�Ð�ߣâëUß�Òjô®ßzÖ�Ò�Ô�Ü�ßUØÇÕ�Î�ÜAÕãÒAß�Î�Ózë�Î�Ñ�ß�Î(Ú�à{Ô$å�Ú|Î�Ô$Î�ß]Ö�Î(Ñ7Õ i Ö�ÒÖ�Û�ιÎ)UUÖ�Î�ß]Ö®Ö�Û�Ü�ÖµÖ�Û�Î(سӣÎ(×NÜjÖ�ÎGÓeà|Ö�Õ)îLÜ�Ú|à�Ó£à|ÖkØ.Ð�ß]Ö�à{Ú�Õ�Û�Òjô®ßܹÕ�åNÎGÏ=à|õNÏ)Ü�ÖãÖ�ÜAÏ7ë9ï ó Û�Î)Ü�ÖãÖ�ÜAÏ7ë�ôµÒ�Ñ�ë£Õ�ÒAß�×NÒ�Ö�Û [ ÍP±Ü�ß�Ó��à|ßUÐ U@sNô4Î�ÜAÕ�Õ�Ð�Ô�ÎYà·Ö1ô4ÒAÑ�ë£ÕqÒAß&Ò�Ö�Û�Î(Ñ ü ÍUÎGÕ)Ü�Õ)ô4Î�Ú|Ú�ï®ðÖkØUå�à�Ï(Ü�Ú9ÖkØUåNÎYÕ�à|çAß�ÜjÖ�Ð�Ñ�ιÒ�æ�Ö�Û�Î�Õ�ÎYÑ�ÒAУÖ�à{ß�Î�ÕqôµÒ�Ð�Ú{ÓE×NÎHa

# ������ � # �� � ���7�P���� � � ��� ����a�^��#" ��� � ���+b ^!"

�(��b / �a;� �(a���� �# ���� ��n� � � # �� � ���7�P��������7��b�a�^ � ��� � ���+b ^!" ��� �D�5�a�^(�#"

�(��b / �a;� �(a���� �ó Û�Î�Õ�Î1Ñ�Ò�Ð�Ö�à{ß�Î�Õ®Î�U£å�Ú|à�Ï=à|Ö�Ú{ØeôµÒ�Ñ�ë.ô®à|Ö�Û&Ð�ß]Ö�Ñ�Ð�ÕãÖ�ÎGÓ³åNÒAà|ß]ÖãâÎ�Ñ�Õ4Ü�ß�ÓeÎ(ß�Õ�Ð�Ñ�Î)Ö�Û�ÜjÖµÖ�Û�ιÕ�åNÎGÏ=à|õ�Î�Ó�ÐNÕãÎ�Ñãâ�îUà|Ñ�Ö�Ð�Ü�ÚNÜAÓ�Ó£Ñ�Î�Õ�ÕÑ7Ü�ß�ç�Î�ý ����������� �����"!$#%��& û à�ÕIîLÜ�Ú|à�ÓQa÷×QÒ�Ö�Û$Ï(Ò�Ô�å�Ú{Î=Ö�Î(Ú{Ø�Ï=Ò�ß�âÖ7Ü�à{ß�Î�ÓXô®à|Ö�Û�à{ßXÖ�Û�ÎÞÐ�ÕãÎ�Ñ�� Õ&Ü�Ó�Ó£Ñ�ÎGÕ�Õ&Õ�å�ÜAÏ=Î�èYÜ�ß�ÓvèYÔ�Ò�Ñ�ÎÕãÖ�Ñ�Ò�ß�ç�Ú{Ø�è®Ü�Ú{Ú)Ö�Û�ÎÇÔ�Î(Ô�ÒAÑ�ØÙÏ=ÒAßAÖ7Ü�à{ß�Î�ÓÙÛNÜ�ÕeÕ�Ò�Ô�ΧîjÜ�Ú|à�ÓÔ�Ü�å�å�à{ß�ç�ï���Ü�à|îAÎ(Ú{Ø�è�à|ÖiôµÒ�Ð�Ú�Ó�Ö�Û�Î(ß.Õ�Î(Î�Ô Ö�Û�ÜjÖ�à|æ9Ö�Û�ήëAÎ(Ñ�âß�Î(ÚNÓ�Ò]ÎGÕ�Ü�ß�Ð�å�åNÎ�Ñãâ�×QÒ�Ð�ß�ÓeÏ7Û�Î�Ï7ë�Ò�ß �(a7��Ö�Ò�Î�ß�Õ�Ð�Ñ�Î)Ö�Û�Ü�Öà|Ö�à�Õ�Õ�Ô�Ü�Ú{Ú|Î�ÑYÖ�ÛNÜ�ßÞÜ&Ô�Ü�UUà{Ô�Ð�Ô�Õ�à|á�Î�Ö�ÛNÜjÖ�Ö�Û�Î(Ñ�ÎeÏ(Ò�Ð�Ú�Ó×QÎYß�Ò�ôqÜLØ�Ö�Û�Ü�Ö®Ö�Û�à�Õ®Ñ�Ò�УÖ�à|ß�ÎYÏ(Ò�Ð�Ú�Ó³×NÎ�Ï(à|Ñ7Ï=Ð�Ô�î�Î�ßAÖ�Î�Óvïò�ߣæ¶Ò�Ñ�Ö�Ð�ßNÜjÖ�Î�Ú|ØAè�Ü�Õ V�à|çAÐ�Ñ�Î � k�Õ�Û�Òjô)ÕiÖ�Û�à�Õqà{Õµß�Ò�Ö)ÕãУæ¤â

õQÏ=à{Î(ß]Ö�ï ó Û�à�ÕiÏ(ÜAÕãÎqà�Õ�à{ßAÖ�Î(Ñ�Î�ÕãÖ�à{ß�çYà{ß�Ö�Û�Ü�Öià·Ö�ôqÜ�ÕiÜ�ß�Î(Ñ�Ñ�ÒAÑà{ßíÖ�Û�ÎzÏ=Ò�Ñ�Î�ë�Î�Ñ�ß�Î�Ú\èµÑ7ÜjÖ�Û�Î(Ñ�Ö�ÛNÜ�ß ÜÂÓ£Ñ�à|îAÎ(Ñ.Ü�ßNÓíÕ�Î(Ñ�î�ÎGÕÖ�Ò�à{Ú|Ú{Ð�ÕãÖ�Ñ7ÜjÖ�Î�Û�ÒjôÙô®à{Ó£Î�Ú|Ø�Ô�à�ÕãÐ�ßNÓ£Î(Ñ7ÕkÖ�ÒUÒUÓ�Õ�Î�Ï(Ð�Ñ�à·ÖkØ$Ñ�Ð�Ú|ÎGÕÏ�Ü�ßÀ×NÎAï ó Û�ÎEÜjÖãÖ7Ü�Ï7ë§à{ßUî�ÒAÚ|îAÎ�Õ Ökô4Ò&ÐNÕãÎ�ÑãâPÕãÐ�å�å�Ú{à|ÎGÓÇîjÜ�Ñ�à|âÜ�×�Ú{Î�Õ@avÖ�Û�Î)Õ�à{ç�ß�ÎGÓ�à{ß]Ö�Î�ç�Î(Ñ�îjÜ�Ñ�à�Ü�×�Ú{Î ��a���Ü�ß�Ó�Ö�Û�ήåQÒ�à{ß]Ö�Î(Ñ���� �_���ï ó Û�ÎYÏ=ңӣιõ�Ñ7ÕkÖ®Ñ�Î�ÜAÓ�Õµà|ß �(a��.Ð�Õãà{ß�ç�Ö�Û�ιÔ�ÜAÏ=Ñ�Ò/ a�� ��b7a�^9ï�b�Ö�Ö�Û�Î(ß�Ó£ÒUÎGÕ�Ü�ß�Ð�å�åQÎ(Ñ�â�×NÒAÐ�ß�Ó�Ï7Û�Î�Ï7ë�Ò�ß �(a7�ø ×�УÖqß�Ò�Ú{ÒjôµÎ(Ñ�â�×QÒ�Ð�ßNÓ$Ï7Û�Î�Ï7ë û Ü�ß�Ó�Ö�Û�Î(ß.å�ÜAÕ�Õ�Î�Õ4à|ÖµÜ�ÕiÖ�Û�ÎÐ�ß�Õãà{ç�ß�Î�ÓÀÚ|Î�ß�ç�Ö�ÛÂÜ�Ñ�ç�Ð�Ô�Î(ß]ÖYÖ�Ò �7���P� �� ��b�a�^9ïEò)ß�æ¶Ò�Ñ�âÖ�Ð�ß�Ü�Ö�Î(Ú{Ø�èqà|æ ��a��Þà�Õ�ß�Î�çAÜ�Ö�à{î�Î�èµà|Öeô®à|Ú{Ú)å�ÜAÕ�Õ�Ö�Û�Χ×QÒ�Ð�ß�ÓÏ7Û�Î�Ï7ë�×�УÖq×NÎGÏ=ÒAÔ$ιÜ�Ú{Ü�Ñ�çAÎ�åQÒAÕ�à·Ö�à|îAÎ îjÜ�Ú{Ð�Î1ô®Û�Î(ßEå�Ü�Õ�Õ�Î�ÓÖ�Òc���7�P� �� ��b7a�^9ï ó Û�Î)Ô�ÒAÕãÖiÕkÖ�Ñ�Ü�à|çAÛAÖ�æ¶Ò�Ñ�ôµÜ�Ñ�Ó�ÜjÖ�Ö�Ü�Ï7ë�à{Õ

Page 12: Using Programmer-Written Compiler Extensions to Catch Security

� � �����@�?> �����7�� !���"���D7!�.7�CO���D���1 ����"�6�D����)�+*�1�"�. , ��-7��.7/z�����1@2�O ��.,0 ������"���B ! � O ��.,0 �����;-�1�1�"�!�. R H7Y�L7,�W�G�W�Y6���GnE

� !�.�# ��Dj��G�XEB�6�D+M��1@24��-C5 67,�1�� -98n,�#�"�!�� 2)�������7��R98(!%8 � O���.,0 ���@��-�1�1�"�!�.@=

�C1��7��R �C1��7,��7��.7�+= O ��.,0 �����)"���B�!�E�E� !�.�# ��Dj��G�H�I�J K L�M

V�à|çAÐ�Ñ�Î � u a ü î�Î�ÑCXNÒjô-Î(Ñ�Ñ�Ò�ÑqÖ�ÛNÜjÖ1Ü�Ú|Ú{Òjô)Õ®Ü�ߧÜ�ÖãÖ7Ü�Ï7ë�Î�Ñ®Ö�ÒåQÒ�Ö�Î�ß]Ö�à�Ü�Ú{Ú|Ø�Ö7Ü�ë�Î�Ï=ÒAß]Ö�Ñ�Ò�Ú�Ò�æiÖ�Û�Î�ÕãØ£ÕãÖ�Î�Ô³ï ��Ü�Ñ�ç�Î�îjÜ�Ú{Ð�Î�ÕÒ�æ �P^ � �=�(^ :9b %Pa§Ü�ß�Ój�P^;� �=�(^ :4�(\n\ b�a��ÀÏ(Ü�ßíÏ�Ü�Ð�Õ�γÖ�Û�ÎÎ)U£å�Ñ�Î�Õ�Õ�à|ÒAß�Ö�Ò§Ýãô®Ñ7Ü�å.Ü�Ñ�ÒAÐ�ß�Ó�é1Ö�Ò�Ü�Õ�Ô�Ü�Ú{Ú�ßUÐ�Ô�×QÎ(ÑGè]îLÜAÏ�âÐ�ÒAÐ�ÕãÚ{ØÂå�ÜAÕ�Õ�à|ß�ç§Ö�Û�ÎEÑ7Ü�ß�çAÎEÏ7Û�ÎGÏ7ëÂ×�УÖ�Ü�Ú{Ú|Òjô®à{ß�çÀÜ�ßbÜ�ÖãâÖ�ÜAÏ7ë�Î�ÑIÖ�Ò�ÒjîAÎ(Ñ�ô®Ñ�à|Ö�ήÜ�ßUØ�Ñ�Î�ç�à{Ò�ß$Ò�ævë�Î�Ñ�ß�Î�Ú�Ô�Î(Ô�Ò�Ñ�Ø�ô®à|Ö�ÛÜ�Ñ�×�à|Ö�Ñ7Ü�Ñ�Ø�îjÜ�Ú{Ð�Î�Õ�ï

Ö�ÒÇå�Ü�Õ�ÕYÖ�Û�Î.ë�Î�Ñ�ß�Î(Ú4ܧô4Î�Ú|Ú|â�Ï7Û�ÒAÕ�Î(ßÀåNÒAà|ß]Ö�Î�Ñ�ÜAÓ�Ó£Ñ�Î�Õ�Õ¹æ¶Ò�Ñ���� �_�ÇÜ�ß�ÓbÜÇß�Î�çAÜ�Ö�à{î�ÎeîjÜ�Ú|Ð�γæ¶ÒAÑ �(a��ÞÕãÐNÏ7Û­Ö�ÛNÜjÖ$Ö�Û�ÎÑ7Ü�ß�çAÎ$ý ��#����� #����#������ # ! � & ���� & ��� ø #%��& ûãû à{Õ®Ü�îjÜ�Ú{à{ÓEÐ�Õ�Î(ÑÜ�Ó�Ó£Ñ�ÎGÕ�ÕqÑ7Ü�ß�ç�Î�ï bPßEÖ�Û�à�Õ�Ï(ÜAÕãÎAèUÖ�Û�Î�ÜjÖãÖ7Ü�Ï7ëAÎ(Ñ®ô®à{Ú|Ú÷×QÎ�Ü�×�Ú|ÎÖ�Ò1Ï=ÒAå]عÒAУÖ�ß�Î�Ü�ÑIÜ�Ñ�×�à|Ö�Ñ7Ü�Ñ�Ø Ü�Ô$ÒAÐ�ß]Ö�Õ�Ò�æ�ëAÎ(Ñ�ß�Î(ÚAÔ�Î(Ô�Ò�Ñ�Ø�ïø ó Û�Î�ÕkÖ�Ñ�Ü�à|çAÛAÖ�æ¶Ò�Ñ�ôµÜ�Ñ�Ó�õZUeà�ÕqÖ�Ò�Ô�Ü�ëAÎ �(a��.Ð�ß�Õ�à{ç�ß�ÎGÓvï û

���� � '�"%$�� 6�5���-,*

ö Û�à{Ú|Î Ö�Û�Î�ß�Î(ÎGÓ Ö�Ò ×QÒ�Ð�ß�Ó îjÜ�Ú{Ð�Î�Õ-à{ÕCÏ=ÒAß�Ï=Î�å£Ö�Ð�Ü�Ú|Ú{ØÕ�à|Ô�å�Ú{Î�è�å�Ñ�ÒAç�Ñ7Ü�Ô�Ô�Î(Ñ7ÕeÒ�æ¤Ö�Î(ß Õ�Î(Î�Ô�Ö�ÒÙæ¶Ò�Ñ�ç�Î=Ö&Ö�Û�ÎÂ×QÎ=âÛ�ÜLîUà{Ò�ÑÂÒ�æ³õZU£Î�Ó£â�Õ�à|á�αÜ�Ñ�à·Ö�Û�Ô�Î=Ö�à{Ï�ï ú Û�Ü�Õ­Ð�ß�Õ�Ð�Ñ�å�Ñ�à�Õkâà{ß�ç Ñ�Ð�Ú|ÎGÕ³æ¶Ò�Ñ&à{ßAÖ�Î(çAÎ(Ñ&Òjî�Î�ÑCXNÒjô�aÞåQÒAÕ�à·Ö�à|îAέÕãà{ç�ß�ÎGÓ-îjÜ�Ú·âÐ�ÎGÕ�Ö�ÛNÜjÖiÒjîAÎ(Ñ�X�Òjô­×QÎ�Ï=ÒAÔ�Î)ß�Î(ç]ÜjÖ�à|îAÎ�èAÜ�ß�Ó$Ð�ß�Õ�à|çAß�Î�Ó�îjÜ�Ú·âÐ�ÎGÕ�Ö�Û�Ü�ÖÇÒjî�Î�ÑCXNÒjô+ô®Ñ�Ü�åXÜ�Ñ�ÒAÐ�ß�Ó-Ö�ÒjôqÜ�Ñ7Ó-á�Î(Ñ�Ò�ï V�à{ç�âÐ�Ñ�Î � u®ç�à{î�ÎGÕ�Ü®ÖkØUå�à�Ï(Ü�Ú�Î�Ñ�Ñ�Ò�ÑGï�C)Î�Ñ�ÎAèGÖ�Û�Î4å�Ñ�ÒAç�Ñ7Ü�Ô�Ô�Î(Ñ�Ü�ÖãâÖ�Î�Ô�å£Ö�Õ4Ö�Ò�Ó£Ò$Ü�ßeÐ�å�åNÎ�Ñãâ�×QÒ�Ð�ß�ÓEÏ7Û�Î�Ï7ë�ÒAß �P^;� �=�(^ :<b %PaÜ�ßNÓ �P^;� �=�(^ :4�(\n\ b�a��&ÐNÕãà{ß�ç§Ö�Û�γÎ)U£åNÎGÓ£à{Î(ß]Ö$Ô�Î(Ö�Û�Ò£Ó­Ò�æÜ�Ó�Ó£à|ß�çÉÖ�Û�Î�Ô Ö�ÒAç�Î(Ö�Û�Î�ÑeÜ�ß�ÓÙÏ7Û�ÎGÏ7ëUà|ß�çÀÖ�Û�ÜjÖ�Ö�Û�Î(à{ÑeÕ�Ð�Ôà�ÕiÚ{Î�Õ�Õ�Ö�Û�Ü�ß�� ��� ����� �������Qï�ò�ߣæ¶Ò�Ñ�Ö�Ð�ß�ÜjÖ�Î(Ú{Ø�èU×NÎGÏ(Ü�Ð�ÕãÎ)Ö�Û�ÎÎ)U£å�Ñ�Î�Õ�Õ�à|ÒAßzÏ(Ü�ßÉÒjî�Î(Ñ�X�Òjô Ü�ß�ÓzÖ�Û�Î�ßXÝ�ô®Ñ�Ü�åzÜ�Ñ�ÒAÐ�ß�Ó�éEÖ�ÒÜÞÕ�Ô�Ü�Ú{Ú�îjÜ�Ú{Ð�ÎAè�Ü�ß-Ü�ÖãÖ7Ü�Ï7ë�Î�ÑeÏ(Ü�ß-Ï(Ü�Ð�Õ�Î&Ö�Û�à�Õ�Ï7Û�Î�Ï7ëbÖ�ÒÕ�Ð�Ï(Ï(Î(Î�ÓÉÎ�î�Î�ßÂô®Û�Î(ßÂÖ�Û�ÎEÕ�Ð�Ô Ò�æ®Ö�Û�ÎeîjÜ�Ñ�à�Ü�×�Ú{Î�Õ�à{Õ�î�Î�Ñ�ØÚ�Ü�Ñ�ç�Î�ï ó Û�Î�Û�Ò�Ú{γÚ|Î(Ö�Õ�Ö�Û�Î&ÜjÖãÖ7Ü�Ï7ëAÎ(Ñ$Òjî�Î(Ñ�ô®Ñ�à·Ö�ÎEÜ�ßUØÂÑ�Î=âç�à{Ò�ß³Ò�æ�ë�Î�Ñ�ß�Î�Ú9Ô$Î�Ô�Ò�Ñ�Ø.ô®à·Ö�Û³Ü$ß�ÎGÜ�Ñ�â�Ü�Ñ�×�à·Ö�Ñ�Ü�Ñ�Ø�Ü�Ô�Ò�Ð�ßAÖÒ�æ�Ó�Ü�Ö�Ü�Ö�Û�Î�ØeÕ�Ð�å�å�Ú{Ø ø î]à�Ü \�^�g� \�^ �P_��P_ û ï

V�à|çAÐ�Ñ�Î � wäç�à{î�ÎGÕ­Ü�ß�Ò�Ö�Û�Î�Ñ�èeÔ$ÒAÑ�αÕ�Ð�×£Ö�Ú|Î-Òjî�Î(Ñ�X�ÒjôÎ(Ñ�Ñ�Ò�ÑGï C)Î�Ñ�ÎíÖ�Û�ÎÙîLÜ�Ñ�à�Ü�×�Ú|Î ��n�(� �äà�ÕÉÑ�ÎGÜ�Ó æ¶Ñ�Ò�Ô0Ö�Û�ÎÐ�Õ�Î(ÑGï ó Û�Îeë�Î�Ñ�ß�Î(Ú4Ö�Û�Î�ßbÜ�Ú{Ú{ÒUÏ�ÜjÖ�Î�Õ�ܧÖ�Î�Ô$åQÒ�Ñ7Ü�Ñ�ØÀ×�Ð �9Î(ÑÒ�æ�Õ�à|á�Î� ��n�n� � :���_�� � ��a�� � fz×]Ø]Ö�Î�ÕeÜ�ß�ÓíÖ�Û�Î(ß-Ï(Ò�å�à{Î�Õ ��n�(� � :���_�� � �(a��É×]Ø]Ö�Î�Õ�Ò�æ®Ð�ÕãÎ�Ñ�Ó�Ü�Ö�ÜÇà|ß]Ö�ÒÇà·ÖGïÇð�Õ$Ó£à�ÕkâÏ=ÐNÕ�Õ�Î�Ózà|ß­ÍUÎGÏ�Ö�à|ÒAß wNï q�Ü�ßÀÜ�Ú|Ú{Ò£Ï(ÜjÖ�à|ÒAßÀÏ�Ü�Ú{Ú�ô®à·Ö�ۭܳÚ{Ü�Ñ�çAÎîjÜ�Ú{Ð�ÎYÐ�Õ�Ð�Ü�Ú{Ú{ØEÜ�Ï=Ö�Õ)ÜAÕ)Ü�ß�à{Ô�å�Ú|à�Ï=à|Ö�×QÒ�Ð�ßNÓ�Õ)Ï7Û�ÎGÏ7ëQèNÕãà{ß�Ï=Î�7`�_����(����ô®à|Ú{Ú�Ñ�Î(Ö�Ð�Ñ�ßÂÜ � �� ��åQÒ�à{ßAÖ�Î(ѹæ¶ÒAÑYÚ{Ü�Ñ�çAÎ$Ü�Ú|Ú{Ò£Ï(ÜjâÖ�à{Ò�ßÉÑ�Î@^]Ð�ÎGÕkÖ7Õ(ï.ò�ߣæ¶Ò�Ñ�Ö�Ð�ßNÜjÖ�Î�Ú|ØAè�ÒjîAÎ(Ñ�X�Òjô Ü�Ú{Ú|Òjô)Õ¹Ü�ßÉÜ�ÖãâÖ�ÜAÏ7ë�Î�ÑiÖ�Ò$Ó£Î(æ¶Î�Ü�Ö4Ö�Û�ιà|Ô�å�Ú{à{Ï(à·Ö)Ï7Û�ÎGÏ7ë�à|ßeÖ�Û�ιÎ�U£Ü�Ô�å�Ú|ÎAï�b�æ ��n�(� � :���_�� � �(a���Û�ÒAÚ{Ó�ÕIÖ�Û�Î�Ô�Ü�U£à|Ô�Ð�Ô Ð�ßNÕãà{ç�ß�ÎGÓ�îjÜ�Ú{Ð�Î�èÖ�Û�ÎeÜ�Ó�Ó�à·Ö�à|ÒAßÀÒ�æ � ô®à{Ú{Ú4Ï(Ü�Ð�Õ�Î�Ö�Û�Î.îjÜ�Ú{Ð�Î�Ö�Ò&ô®Ñ�Ü�åzÖ�Ò � ï

� ���������?>���� � 2 ��1�"�� �CD�. !��C8(!�B�B7-���5�"�� !� �����*5 � !7"�. -�,�5�"���!� 7, ��-���.7/j���

!���� N ��-C5 67,�1�� -98n,�#�"�!��@2;:��%D�5�# .@=�����?@=4"���B ! -�1�24�%D�5�#7.(E�EPM������CD�5�# .��T57��.,0FN��8(��/�/�- ��24�CD�5�#�.��T5���. 0�,�/�!�D � 'P=

��H���, ��G�V�X�G�KnEM��1�2 ���CD�5�# .��T5���.,0nE

� !�.�# ��Dj��G�X4D�W�G�W@M!����7-�� N[��-�5 67,�1��7-98n,�#�"�!��@24�%D�5�# .�� 5���.,0�= #�"�!��7,C5���.,0�=

�CD�5�#�.��T5���. 0�,�/�!�D(EM

V�à{ç�Ð�Ñ�Î � w a ü î�Î�ÑCXNÒjôqâ�à{ß�Ó£Ð�Ï(Î�ÓÙÐ�ßNÓ£Î(Ñ�Ü�Ú{Ú|Ò£Ï�ÜjÖ�à{Ò�ß±Ö�Û�Ü�ÖÜ�Ú|Ú{Òjô)Õ­Ü�ß ÜjÖãÖ7Ü�Ï7ëAÎ(ÑÂÖ�Ò ×�Ñ�Î�Ü�Ï7Û ëAÎ(Ñ�ß�Î(ÚEà|ß]Ö�Î(ç�Ñ�à|ÖkØ�ï b�æ��_�� � �(a��zÎ^]Ð�Ü�Ú�Õ1Ö�Û�ÎeÚ{Ü�Ñ�çAÎ�ÕãÖ�åNÒ]Õ�Õ�à|×�Ú|Î�Ð�ßNÕãà{ç�ß�ÎGÓÀîLÜ�Ú|Ð�ÎÖ�Û�έÜ�Ó�Ó£à·Ö�à|ÒAßäÒ�æ � ô®à|Ú{Ú�ô®Ñ7Ü�åXà·Ö§Ö�Ò á(Î�Ñ�ÒNï+ð<Ï(Ü�Ú{ÚYÖ�Ò�7`�_���������9e��§Ñ�Î(Ö�Ð�Ñ�ß�Õ�Ü­ß�Ò�ߣâ�ß�à{ÚYåNÒAà|ß]Ö�Î�ѳÖ�ÒÙÜ ø ÕãÔ�Ü�Ú{Ú ûÜ�Ô�Ò�Ð�ß]ÖÙÒ�æzëAÎ(Ñ�ß�Î(Ú�Ô�Î(Ô�ÒAÑ�ØAè&ô®Û�à{Ï7Û/Ö�Û�ÎäÕ�Ð�×�Õ�Î@^]Ð�Î�ß]Ö�����P� \(^��` �+b�a�^EÏ�Ü�ߧ×QÎ�ÐNÕãÎGÓ�Ö�Ò.ÒjîAÎ(Ñ�X�ÒjôYè�Ï(Ò�Ñ�Ñ�Ð�å�Ö�à{ß�çÚ�Ü�Ñ�ç�ιÜ�Ô�ÒAÐ�ß]Ö�ÕqÒ�æ�ë�Î�Ñ�ß�Î�ÚvÔ�Î(Ô�Ò�Ñ�Ø�ï

C�Òjô4Î�î�Î�Ñ�è9Ü.á�Î(Ñ�Ò�â�×]Ø]Ö�Î�Ü�Ú{Ú{ÒUÏ�ÜjÖ�à|ÒAßÇÏ(Ü�Ú|Ú�Ö�Ò �7`�_����(����ô®à{Ú|ÚÑ�Î=Ö�Ð�Ñ�ßÙÜ­ß�Ò�ߣâ�ß�à{Ú�åQÒ�à{ß]Ö�Î(Ñ.Ö�ÒÞÜ ø ÕãÔ�Ü�Ú|Ú û ×�Ð �9Î(ÑGè®ô®Û�à�Ï7ÛÖ�Û�ÎÞÕ�Ð�×�Õ�Î@^]Ð�Î�ßAÖÇÏ(Ò�åUØUà|ßäô®à{Ú|Ú�Ö�Û�Î�ß Î)U£Ð�×QÎ(Ñ7Ü�ß]Ö�Ú{Ø-ÒjîAÎ(Ñ�âô®Ñ�à|Ö�ιô®à·Ö�Û ø Õ�ÜLØ û w < [ Ò�æIÐ�Õ�Î(Ñ)Ó�Ü�Ö�Ü�ïó Û�αÏ7Û�Î�Ï7ë�Î�Ñ­Ï(Ü�Ö�Ï7Û�ÎGÕÀÖ�Û�ÎGÕãÎ Î�Ñ�Ñ�Ò�Ñ7ÕÀÐ�Õãà{ß�ç ÜXî�Î�Ñ�Ø

å�Ñ�à{Ô�à·Ö�à|îAΧÜ�å�å�Ñ�ÒAÜAÏ7Û�a�à·Ö�Ö�Ñ�ÎGÜjÖ7Õ.Ü�Ú{Ú)Ð�å�åQÎ(Ñ�â�Ü�ß�ÓíÚ|ÒjôµÎ(Ñ�â×QÒ�Ð�ß�Ó Ï7Û�Î�Ï7ë£Õ.Ö�Û�Ü�Öeà|ßUîAÒ�Ú{î�ΧÜ�Ñ�à|Ö�Û�Ô�Î=Ö�à{ÏÇÒ�ß Ð�Õ�Î(ѳÓ�ÜjÖ7ÜÜAÕ®îjÜ�Ï(Ð�Ò�Ð�Õ�ï)ö Û�à{Ú{Î�Ö�Û�à{Õ1Ü�å�å�Ñ�Ò]Ü�Ï7Û&Ï(Ü�Ð�ÕãÎGÕqæoÜ�Ú�Õ�Î�Ü�Ú�Ü�Ñ�Ô�Õô®Û�Î(ßEÜ$Ï=Ú{Î(îAÎ(ѵå�Ñ�Ò�ç�Ñ7Ü�Ô�Ô�Î(Ñ4Ó£ÒUÎ�Õ4æoÜ�ß�Ï(Ø�×NÒAÐ�ß�Ó�ÕqÏ7Û�ÎGÏ7ë£ÕÏ(Ò�Ñ�Ñ�ÎGÏ�Ö�Ú|ØAè]Î�Ô�å�à|Ñ�à�Ï(Ü�Ú{Ú{ØeÕãÐNÏ7Û³Ï�Ü�Õ�Î�ÕqÜ�Ñ�ιß�Î(çAÚ|à{ç�à{×�Ú{Ø.Ñ�Ü�Ñ�ÎAï

� } ������� ! 3��)2o~��)� } �)�I6&'7�I�

ó Ü�×�Ú|ÎAwÇÖ�Ü�×�Ð�Ú�ÜjÖ�ÎGÕYÖ�Û�ÎEÑ7Ü�ß�ç�Î.Ï7Û�ÎGÏ7ë�Î(Ñ�Î(Ñ�Ñ�ÒAÑ�Õ¹æ¶ÒAÑ�×QÒ�Ö�Û��à|ßUÐ U ø � k�yYÎ(Ñ�Ñ�Ò�Ñ7Õ û Ü�ß�Ó ü åNÎ�ß [ ÍP ø � k�Î�Ñ�Ñ�Ò�Ñ7Õ û ï �iÑ�Ñ�Ò�Ñ7ÕÜ�Ñ�Î�Ï(Ú{ÜAÕ�Õ�à|õ�Î�Ó�à{ß]Ö�Ò�õ�îAÎ�Ï�ÜjÖ�Î�ç�ÒAÑ�à{Î�ÕqÒ�æiÓ£Î�Ï(Ñ�ÎGÜ�Õ�à|ß�ç.Õ�Î(îAÎ(Ñ�âà|ÖkØSa� ï <¹Ü�à{ßÞÏ=ÒAß]Ö�Ñ�Ò�ÚiÒ�æ)Ö�Û�ÎEÕ�ØUÕãÖ�Î�Ô�ïÀð/Ô�Ü�Ú{à{Ï(à|ÒAÐ�Õ�ÐNÕãÎ�ÑÏ=ÒAÐ�Ú{Ó.Ð�ÕãÎ Ö�Û�Î�Õ�Î�Û�ÒAÚ|ÎGÕ�Ö�Ò�çAÜ�à|ßEÏ=Ò�ß]Ö�Ñ�ÒAÚ�Ò�ævÖ�Û�ιÕãØ£ÕãâÖ�Î�Ô+×UØ!�kÐ�Ô�å�à|ß�çEÖ�Ò³Ü�Ñ�×�à·Ö�Ñ�Ü�Ñ�Ø�Ï=Ò£Ó£Î$Ò�ѹÏ7Û�Ü�ß�ç�à{ß�çåNÎ�Ñ�Ô�à�Õ�Õ�à{Ò�ß�ÕiÖ�Ò�×NÎGÏ=Ò�Ô�Î Ö�Û�γÝ�Õ�Ð�åQÎ(Ñ�Ð�Õ�Î(ÑGï é§ðµÖµÖ�Û�Îî�Î�Ñ�Ø.Ú{Î�ÜAÕkÖGè£Ö�Û�Î�Õ�Î�Û�Ò�Ú{Î�Õ®Ü�Ú|Ú{ÒjôäÜ�ß&ÜjÖ�Ö�Ü�Ï7ë.Ö�Ò.Ï=Ñ7Ü�Õ�ÛÖ�Û�ÎYëAÎ(Ñ�ß�Î(Ú�ï

k£ï [ Ñ�ÎGÜ�Ï7Û&à{ßAÖ�Î(çAÑ�à|ÖkØE×UØ&Ï=ÒAÑ�Ñ�Ð�å£Ö�à|ß�ç.ë�Î�Ñ�ß�Î�Ú�Ô�Î(Ô�ÒAÑ�ØAïó Û�Î�Õ�Î�Î(Ñ�Ñ�Ò�Ñ7Õ9ô4Î�Ñ�Î�Ô�ÒAÕãÖ÷Ò�æ¤Ö�Î(ß�ÜqÑ�Î�Õ�Ð�Ú|Ö�Ò�æ£Òjî�Î�ÑCXNÒjôÔ�ÜjÖ�Û Î�Ñ�Ñ�Ò�Ñ7Õ�Ö�Û�Ü�ÖeÏ(Ü�Ð�ÕãÎGÓbÖ�Û�ΧëAÎ(Ñ�ß�Î(ÚqÖ�Ò­Ð�ß�Ó�Î(Ñ�âÜ�Ú{Ú|Ò£Ï�ÜjÖ�Î4Ô�Î(Ô�Ò�Ñ�Ø�èLô®Û�à�Ï7ÛYÖ�Û�Î(ß�Ï�Ü�Ð�Õ�Î�ÓYÕ�Ð�×�Õ�Î@^]Ð�Î�ß]Öô®Ñ�à|Ö�ÎGÕµÖ�Ò.Ï(Ò�Ñ�Ñ�Ð�å�ÖqÜAÓ��ãÜ�Ï(Î(ß]Ö®Ô$Î�Ô�Ò�Ñ�Ø.Ú|Ò£Ï�ÜjÖ�à{Ò�ßNÕ(ï

u�ï ]®Î�ÜAÓ-Ü�Ñ�×�à|Ö�Ñ7Ü�Ñ�ØíÔ$Î�Ô�Ò�Ñ�Ø�ï ó Û�Î�Õ�ÎÇà{ß�Ï(Ú|Ð�Ó�ÎÀ×QÒ�Ö�ÛÏ=ÒAߣõNÓ£Î�ßAÖ�à{Ü�Ú|à|ÖkØÂ×�Ñ�Î�ÜAÏ7Û�Î�Õ�ô®Û�Î(Ñ�Î&ÜjÖ�Ö�Ü�Ï7ëAÎ(Ñ7Õ�Ï(Ò�Ð�Ú�ÓÑ�ÎGÜ�Ó à{ߣæ¶ÒAÑ�Ô�ÜjÖ�à|ÒAß Ö�Û�Î(Ø ôµÎ(Ñ�έß�Ò�ÖÂÕ�Ð�å�åQÒAÕ�Î�ÓäÖ�Ò

Page 13: Using Programmer-Written Compiler Extensions to Catch Security

� � � � � �!� ��� ���� �� �\�£� ���� �8�>@ � � ��� �F�A@ � � ���<¹Ü�à{ß�Ï=Ò�ß]Ö�Ñ�ÒAÚQÒ�æIÕ�Ø£ÕkÖ�Î(Ô � þ � y u uú Ò�Ñ�Ñ�Ð�å£ÖqÔ$Î�Ô�Ò�Ñ�Ø w�u � { k k]®ÎGÜ�Ó³Ü�Ñ�×�à·Ö�Ñ�Ü�Ñ�Ø�Ô�Î(Ô�ÒAÑ�Ø � ÿ � w { { Î(ß�à�Ü�ÚvÒ�æIÕ�Î(Ñ�îUà{Ï(Î � { y � �ù à{ß�Ò�Ñ k�þ � � �ó Ò�Ö�Ü�Ú � k�y y�k � k � k

ó Ü�×�Ú{Î w a ��Ñ�Ñ�ÒAѵ×�Ñ�ÎGÜ�ë£Ó£Òjô®ß�æ¶ÒAÑ]�÷à{ßUÐ UEÜ�ßNÓ ü åQÎ(ß [ ÍP�ï

ÕãÎ�Î.Ü�ÕYôµÎ(Ú{ÚiÜ�Õ�ÕãØ£ÕãÖ�Î(Ô�Ï=Ñ7Ü�Õ�Û�Î�ÕYÓ�Ð�Î�Ö�ÒzÜjÖãÖ7Ü�Ï7ëAÎ(Ñ7ÕÏ(Ü�ÐNÕãà{ß�ç�Ö�Û�ÎYÕ�ØUÕãÖ�Î�Ô Ö�Ò�Ñ�Î�ÜAÓeà{ßUîLÜ�Ú|à�ÓEÔ$Î�Ô�Ò�Ñ�Ø.Ü�ÓUâÓ£Ñ�ÎGÕ�Õ�Î�Õ�ï

wNï��Î�ß�à{Ü�Ú¹Ò�æ$ÍUÎ�Ñ�îUà�Ï=ÎAï#ö Û�à|Ú{ÎÉß�Ò�Ö&ÕãÎ�Ñ�à{Ò�ÐNÕ.Î(ß�Ò�Ð�çAÛÖ�Ò³Ö�Ü�ë�Î�Òjî�Î�Ñ1Ö�Û�Î.Õ�Ø£ÕkÖ�Î(Ô�è�Ö�Û�Î�Õ�Î�Î(Ñ�Ñ�Ò�Ñ7Õ Ï(Ò�Ð�Ú�ÓÀ×NÎÎ)U£å�Ú{Ò�à|Ö�Î�Ó1Ö�Ò�Ô�Ü�ëAÎ�Ö�Û�Îië�Î�Ñ�ß�Î(Ú�Ú{ÒUÒ�åYæ¶ÒAÑ�Ü ÜjÖãÖ7Ü�Ï7ëAÎ(Ñ�âÏ=Ò�ß]Ö�Ñ�ÒAÚ|Ú{Î�ÓEÜ�Ô�Ò�Ð�ß]Ö®Ò�æIà|Ö�Î(Ñ7ÜjÖ�à|ÒAß�Õ�ï

y�ï ù à|ß�Ò�ÑGï ó Û�ÎGÕãεô4Î�Ñ�εÎ(Ñ�Ñ�Ò�Ñ7Õ÷ô®Û�Î�Ñ�Î4Ö�Û�ÎqëAÎ(Ñ�ß�Î(Ú£Ï=Ò£Ó£ÎôµÜAÕqÐ�Õãà{ß�çeÜ�ߧÜ�Ú{Ú|Ò£Ï�ÜjÖ�à{Ò�ßEæ¶Ð�ß�Ï=Ö�à{Ò�ßÇÜAÕ)Ü�ß&à{Ô�å�Ú{à{Ï(à·ÖÑ�Ü�ß�ç�Î�Ï7Û�ÎGÏ7ë�à|ߧÐNÕãÎ�Ñ�à{ß�å�УÖGï��iÑ�Ñ�Ò�Ñ7Õ®Ü�Ú�Õ�Ò�æ¶Î(Ú{ÚIà|ß]Ö�ÒÖ�Û�à�Õ�Ï�ÜjÖ�Î�ç�ÒAÑ�Ø à·æ£Ö�Û�ÎiÎ�Ñ�Ñ�Ò�Ñ÷Ï(Ò�Ð�Ú�ÓYÒ�ß�Ú|Ø1×NÎ4Î)U£å�Ú{Ò�à|Ö�ÎGÓ×]Ø�Ö�Û�Î ÕãÐ�åQÎ(Ñ�Ð�Õ�Î(Ñ�i à·Öµà{ÕiÐ�ß�Ú{à|ëAÎ(Ú{Ø�Ö�Û�ÜjÖ�Ö�Û�Î Õ�Ð�åQÎ=âÑ�Ð�Õ�Î(Ñ1ôµÒ�Ð�Ú�ÓÇôqÜ�ß]Ö1Ö�Ò³åNÎ�Ñãæ¶ÒAÑ�Ô Üe×�ÐZ�QÎ�ÑYÒjî�Î(Ñ�X�ÒjôÜjÖãÖ7Ü�Ï7ë9è�×�Ð£Ö Û�Î�Ï=Ò�Ð�Ú{Ó³Ö�Ñ�à{ç�çAÎ(Ñ)à|Ö ×UØ�Ü�Ï(Ï(à{Ó�Î(ß]Ö Ü�ßNÓÏ=Ñ7Ü�Õ�Û.Ö�Û�ÎYÔ�ÜAÏ7Û�à{ß�Î�ï

ü Ð�Ñ4Ô�Ü�à|ß³Ï(ÜLîAÎ�ÜjÖ�à�ÕiÖ�Û�Ü�Ö4Ö�Û�Î�Ñ�Î�Õ�Ð�Ú|Ö4×�Ñ�Î�Ü�ëUÓ�Òjô®ß.ÕãÛ�ÒAÐ�Ú�Ó×QÎYÑ�Î�çAÜ�Ñ7Ó£ÎGÓ.Ò�ß�Ú|ØeÜAÕqÜ�å�å�Ñ�Ò�U£à|Ô�Ü�Ö�Î�ï ó Û�ÎYÕ�Û�Î(Î�Ñ®ßUÐ�Ô�×QÎ(ÑÒ�æ�Î(Ñ�Ñ�ÒAÑ�Õ�Ü�ß�Ó�Ö�Û�Î æoÜ�Ï�ÖµÖ�ÛNÜjÖ®ô4Î1Ü�Ñ�Î�ß�Ò�ÖqÏ(Ò�Ñ�Î�ëAÎ(Ñ�ß�Î(ÚQà|Ô$âå�Ú{Î(Ô�Î(ß]Ö�Î(Ñ7ÕiÔ�Ü�ëAÎ�Õià·ÖµåNÒ]Õ�Õ�à|×�Ú|Î�Ö�Û�Ü�Ö4ôµÎ�Ô�à{ÕãâPÏ(ÜjÖ�Î(çAÒ�Ñ�à|á�Î�ÓÕ�Ò�Ô�Î�ïó Ü�×�Ú{Î y Õ�Ð�Ô�Ô�Ü�Ñ�à|á�Î�Õ ÒAÐ�Ñ-Î�UUåQÎ(Ñ�à{Ô$Î�ß]Ö�Ü�ÚzÑ�ÎGÕãÐ�Ú·Ö7Õ(ï

ó Û�Î�Ñ�Î�ôµÎ(Ñ�Î$Ökô4Ò�Ñ�Î�Õ�Ð�Ú·Ö7Õ¹Ö�ÛNÜjÖ�Õ�Ð�Ñ�å�Ñ�à�Õ�Î�ÓzÐ�Õ(ï V�à|Ñ7ÕkÖGè�Õ�Î=âî�Î�Ñ�Î�Î(Ñ�Ñ�ÒAÑ�Õ®Õ�Î(Î�Ô �kÐNÕkÖYÜ�Õ Ï=Ò�Ô�Ô�Ò�ߧÜAÕ)Ô�à{ß�Ò�Ñ1Ò�ß�ÎGÕ(ï ü ß�÷à{ßUÐ U�à{ß�å�Ü�Ñ�Ö�à�Ï=Ð�Ú�Ü�ÑGèjÖ�Û�ήßUÐ�Ô�×QÎ(Ñ�Ò�æQÎ�Ñ�Ñ�Ò�Ñ7Õ�à{ß$Ö�Û�ήôµÒ�Ñ7ÕãÖÎ(Ñ�Ñ�Ò�ÑiÏ�ÜjÖ�Î�ç�ÒAÑ�à{Î�Õ�Ñ�Ò�Ð�ç�Û�Ú{Ø�Î^AÐNÜ�Ú�Ö�Û�ÒAÕ�Î�à{ß�Ö�Û�Î�Ú�Ü�ÕãÖiÖ�Û�Ñ�Î�Î�ïöÀÎ�Û�Ü�Ó�Î�U£åNÎGÏ�Ö�ÎGÓ³Ö�Û�Ü�Ö)Ö�Û�Î�ÕãÎ�î�Î�Ñ�ÎYÎ�Ñ�Ñ�Ò�Ñ7Õµô4ÒAÐ�Ú{Ó�×QÎ�×UØæoÜ�ѹÖ�Û�Î�Ô�ÒAÕãÖ¹Ñ7Ü�Ñ�Î i Ö�Û�ÎGÕãÎ�Ñ�Ð�Ú{Î�Õ¹ÕãÛ�Ò�Ð�Ú�ÓÇ×QÎ�Ö�Û�Î�Ô$Ò]ÕkÖô®à�Ó£Î(Ú{رëUß�Òjô®ß÷è¹Ü�ß�Ó-Ö�Û�ÎÂå�Ñ�ÒAç�Ñ7Ü�Ô�Ô�Î(Ñ7Õ�Ö�Û�ÎÂÔ�ÒAÕãÖ&Ü�ÖãâÖ�Î�ß]Ö�à{î�Î�ïíÍUÎ�Ï(Ò�ß�ÓvèiÔ$Ò]ÕkÖ�×�Ð�ç]Õ�ôµÎ(Ñ�γÚ|Ò£Ï(Ü�Ú\ï ü Ð�Ñ�à{ß�à|Ö�à�Ü�ÚÏ7Û�ÎGÏ7ë�Î(ÑiôµÜAÕ�Ú{ÒUÏ�Ü�Ú|â�ÒAß�Ú{Ø+s]ôµÎ)Û�Ü�Ó.Î)U£åNÎGÏ�Ö�Î�Ó�Ö�Û�ÜjÖµÔ�Ü�ëUà|ß�çà|ÖEà{ßAÖ�Î(Ñ�â�å�Ñ�Ò£Ï=ÎGÓ£Ð�Ñ7Ü�Ú)ôµÒ�Ð�Ú{Ó±Ó�Ñ�Ü�Ô�Ü�Ö�à�Ï(Ü�Ú|Ú{ØÞà{ß�Ï=Ñ�Î�ÜAÕãΧÖ�Û�ÎßUÐ�Ô�×QÎ(Ñ®Ò�æ�×�Ð�çAÕµæ¶ÒAÐ�ß�Óvï

bPߣæ¶Î�Ñ�Î�ß�Ï=ÎCÒ�æ§Ð�Õ�Î(Ñíà|ß�å�УÖÙô4ÒAÑ�ëAÎ�Ó ôµÎ(Ú{Ú³ÒAß��÷à{ßUÐ Uø Ö�Û�Ò�Ð�ç�Û-à|Ö&Ó£à{Ó±ß�Ò�Ö³õ�ß�Ó ü åNÎ�ß [ ÍP�Î(Ñ�Ñ�ÒAÑ�Õ û ï ó Òbç�Î=Öܹæ¶Î�Î(ÚNæ¶Ò�Ñ�Ö�Û�Î�ßUÐ�Ô�×NÎ�ÑiÒ�æ�Ï7Û�Î�Ï7ë£Õ�åQÎ(Ñ�æ¶Ò�Ñ�Ô�Î�Ó ø Ü�ß�Ó�Û�Î�ß�Ï=ÎÖ�Û�Î$Î�Ñ�Ñ�Ò�Ñ Ñ�Ü�Ö�Î û ôµÎ�Ï=Ò�Ð�ßAÖ�Î�Ó§Ö�Û�Î�Ü�å�å�Ñ�Ò�U£à{Ô�ÜjÖ�Î�ßUÐ�Ô�×QÎ(ÑÒ�æ�îLÜ�Ñ�à�Ü�×�Ú|ÎGÕeÏ7Û�ÎGÏ7ë�Î�Ó±à|ß �÷à{ß]ÐZUzk�ï wNï � k�i Ö�Û�Î�Ñ�ÎÀôµÎ(Ñ�ÎÑ�Ò�Ð�çAÛ�Ú|Øzu(y ��� Õ�Ð�Ï7Û-îjÜ�Ñ�à�Ü�×�Ú{Î�Õ ø ôµÎÂÏ=ÒAÐ�ß]Ö&ÜíÕãÖ�Ñ�Ð�Ï�Ö�Ð�Ñ�Îô®à|Ö�Û Ô�Ð�Ú·Ö�à|å�Ú{ÎÂõ�Î�Ú{Ó�Õ§Ü�Õ&ÒAß�ÎÂîjÜ�Ñ�à{Ü�×�Ú{Î û ï b�æ$ôµÎÂÔ�Ü�ë�ÎÖ�Û�ÎÀÏ(Ñ�Ð�Ó�ÎÇÜ�Õ�ÕãÐ�Ô$å�Ö�à{Ò�ß Ö�Û�ÜjÖ�Ü�Ú{Ú Î�Ñ�Ñ�Ò�Ñ7Õ�æ¶Ò�Ð�ß�Ó±×UØíÒ�Ð�Ñ

Ï7Û�Î�Ï7ë�Î�Ñ�Õµà{ß&Î�Ü�Ñ�Ú{à|Î�Ñ®î�Î�Ñ�Õ�à|ÒAß�ÕµÒ�æo�÷à{ßUÐ UEôµÒ�Ð�Ú{Ó³Û�ÜLîAÎ1Ò�Ö�Û£âÎ�Ñ�ô®à�Õ�Î$åQÎ(Ñ7Õ�à{ÕãÖ�ÎGÓzÐ�ßAÖ�à|Ú k£ï w�ï � keÖ�Û�à{ÕYçAà|îAÎ�ÕYÜ�ßÀÎ�Ñ�Ñ�Ò�ÑYÑ7ÜjÖ�ÎÒ�æ�Ñ�Ò�Ð�çAÛ�Ú|Ø � Ò�УÖ�Ò�æ k�þÞîLÜ�Ñ�à�Ü�×�Ú|ÎGÕE×QÎ(à{ß�çíÔ�à{Õ�Û�Ü�ßNÓ£Ú|ÎGÓø � k�y�Î(Ñ�Ñ�ÒAÑ�Õ�� u(y ��� Ï7Û�Î�Ï7ë£Õ û èQô®Û�à{Ï7ÛzåNÒAà|ß]Ö7Õ)Ö�Ò³ÜEÕkÖ�Ñ�ÒAß�çß�Î(Î�Óíæ¶ÒAÑEÜ�УÖ�ÒAÔ�Ü�Ö�à�ϧÏ7Û�ÎGÏ7ë]à{ß�çÞÜ�ß�ÓÙå�Ñ�Ò�çAÑ�Ü�Ô$Ô�Î�Ñ�Î�ӣУâÏ�ÜjÖ�à|ÒAß÷ï ü åNÎ�ß [ ÍP Û�Ü�Óbܧ×QÎ=ÖãÖ�Î(Ñ�×�Ð�Ö�ÕãÖ�à{Ú|ÚqÛ�à{ç�ÛbÎ(Ñ�Ñ�ÒAÑÑ7ÜjÖ�Î.a1Ñ�ÒAÐ�ç�Û�Ú|Ø � Ò�Ð�Ö¹Ò�æ y � îjÜ�Ñ�à�Ü�×�Ú{Î�Õ1Ô�à{Õ�Û�Ü�ß�Ó£Ú{Î�Ó ø y�ÿ�wÏ7Û�Î�Ï7ë£Õ� � k.Î�Ñ�Ñ�Ò�Ñ7Õ û ï C)ÒjôµÎ(î�Î�Ñ�è9ß�Ò�Ö�Î�Ö�Û�ÜjÖ�Ü�Ú|Ú�Ò�æiÖ�Û�Î�Õ�ÎÎ�Ñ�Ñ�Ò�Ñ7Õ4ô4Î�Ñ�ιÕãÎ�Ñ�à{Ò�ÐNÕ4ÒAß�Î�ÕµÖ�Û�ÜjÖ)Ï(Ò�Ð�Ú�Ó�Ü�Ú{Ú|Òjô-Ü�ß³Ü�ÖãÖ7Ü�Ï7ë�Î�ÑÖ�Ò�Ï=Ñ7Ü�Õ�ÛeÒ�ÑqÖ7Ü�ëAιÏ(Ò�ß]Ö�Ñ�Ò�Ú9Ò�æ�Ö�Û�Î�ÕãØ£ÕãÖ�Î�Ô³ï

�]�,� �¶��@Q�£� +>�]� �>@ �=������� � ���£�, ���!. ó Û�Î&õ�Ñ7ÕãÖÑ�Ð�ß�Õ Ò�æiÖ�Û�Î$Ñ�Ü�ß�ç�Î$Ï7Û�Î�Ï7ëAÎ(Ñ ô4Î�Ñ�Î�Òjî�Î(Ñ �÷à{ßUÐ U�k£ï w�ï y£ïYð�ÕôµÎ)à{Ô�å�Ñ�ÒjîAÎ�Ó�Ö�Û�Î1Ï7Û�ÎGÏ7ë�Î�ÑiÜ�ß�Ó$æ¶ÒAÐ�ß�Ó�Ô�ÒAÑ�Î)×�Ð�çAÕ4ô4Î�Ñ�Î(âåQÒ�Ñ�Ö�ÎGÓYÖ�Û�Î(Ô Ö�Ò�Ö�Û�Î �÷à{ßUÐ U �¹Î(Ñ�ß�Î(Ú]Ô�Ü�à{Ú|à{ß�ç1Ú|à�ÕãÖ�ï ó Û�ÎqÑ�Î(âåQÒ�Ñ�Ö�Õ�Ï�Ü�Ô�ήÑ�Ò�Ð�çAÛ�Ú|Ø�à|ß�×�Ü�Ö�Ï7Û�ÎGÕ�Î(îAÎ(Ñ�ØYæ¶Î(ôíô4Î�Î(ë£ÕIÒjî�Î�Ñ�ÜåQÎ(Ñ�à{ÒUÓ¹Ò�æ�Ü�×QÒ�УÖ�æ¶Ò�Ð�Ñ�Ô$ÒAß]Ö�Û�Õ�èLÚ{ÜAÕkÖ�à|ß�ç)Ö�Ò)îAÎ(Ñ7Õãà{Ò�ß k£ï w�ï � kjâÜAÏ�u�è®ô®Û�à{Ï7ÛCôµÜAÕeÑ�Î(Ú{Î�ÜAÕãÎGÓíÖkô4Òbô4Î�Î(ë£Õ.×QÎ=æ¶ÒAÑ�ÎzÖ�Û�à{Õ³å�Ü�âåQÎ(ѵôqÜ�ÕiÕ�Ð�×�Ô�à|ÖãÖ�Î�Óvï C�Òjô4Î�î�Î(ÑGè�ô®Û�à|Ú{Î Î�Ñ�Ñ�Ò�Ñ7Õ�Ï(Ò�Ô�Î)æ¶Ñ�Ò�ÔÔ�Ð�Ú|Ö�à{å�Ú|ήÑ�Î(Ú{Î�ÜAÕãÎGÕIÎ�ÜAÏ7Û�×�Ð�çYà{Õ�Ð�ß�àL^]Ð�Î isô4Î)Ï(Ò�Ð�ß]Ö�ÎGÜ�Ï7ÛÎ�Ñ�Ñ�Ò�ѹÎ�U£ÜAÏ�Ö�Ú|اÒAß�Ï=Î�Ñ7ÜjÖ�Û�Î(ѹÖ�Û�Ü�ßÉÒ�ßNÏ=Î�æ¶Ò�ÑYÎGÜ�Ï7ÛÀÑ�Î�Ú|ÎGÜ�Õ�Îà{ß�ô®Û�à�Ï7Û$à|ÖiÜ�å�åNÎGÜ�Ñ�Î�Óvï ù Ü�ßUØ�Ò�æNÖ�Û�Î)Ñ�Î(åQÒ�Ñ�Ö�ÕIÑ�Î�Õ�Ð�Ú|Ö�Î�Ó$à{ßëAÎ(Ñ�ß�Î(ÚAå�ÜjÖ7Ï7Û�Î�Õ��kÐ�ÕãÖ�Ü®æ¶Î(ôÞÛ�Ò�Ð�Ñ7Õ�Üjæ¤Ö�Î�Ñ�Ö�Û�Î(à{Ñ�ÕãÐ�×�Ô�à{Õ�Õãà{Ò�ß�ïöÀÎ�Ð�Õ�Î�Ó Ö�Û�Î�Õ�Î�å�Ü�Ö�Ï7Û�ÎGÕ9Ö�Ò)îAÎ(Ñ�à·æ¶Ø�Ö�Û�Ü�Ö÷Ö�Û�ÎiÕãÎGÏ=Ð�Ñ�à|ÖkØ�Û�ÒAÚ|ÎGÕôµÎ(Ñ�Î�Ñ�ÎGÜ�Ú�è�×�Ð�Ö�Ö�Û�ÎeÚ{ÜAÏ7ë§Ò�æ)Ü�å�Ü�Ö�Ï7ÛÂÓ£à�ÓÉß�Ò�Ö�ß�ÎGÏ=ÎGÕ�Õ�Ü�Ñ�âà{Ú{سÔ�ÎGÜ�ߧÖ�Û�ÜjÖ1Ö�Û�Î$Ñ�Î(åQÒ�Ñ�Ö ôqÜ�Õ)æoÜ�Ú�ÕãÎAï�ÍUÒ�Ô�Î$×�Ð�ç]Õ�ôµÎ(Ñ�ÎÔ�à{ß�Ò�Ñ�Ü�ß�ÓÀõZU£à{ß�ç&Ö�Û�Î(Ô à{ßAÖ�Ñ�Ò£Ó£ÐNÏ=Î�ÓÀÖ�Û�Î.åQÒAÕ�Õãà{×�à{Ú|à|ÖkØÀÒ�æÜAÓ�Ó£à{ß�çYß�Î�ôí×�Ð�çAÕ�ïFb�æ�ܹÑ�Î(åQÒ�Ñ�Ö�ôqÜ�ÕIæoÜ�Ú{Õ�Î�èAÖ�Û�Î�ë�Î(Ñ�ß�Î�Ú�Ó£Î=âîAÎ(Ú{Ò�åQÎ(Ñ7Õ)ôµÒ�Ð�Ú�Ó&Ö�Î(Ú{ÚIÐ�Õ¹Ü�ß�ÓÇÎ)U£å�Ú�Ü�à{ßÇô®ÛUØ�ïYöÀÎ�æ¶Ò£Ï(Ð�ÕãÎGÓÔ�Ü�à|ß�Ú{Ø�Ò�ßeð�Ú{Ü�ß ú Ò�U@� Õià|ß]Ö�Î(Ñ�Ô$ÎGÓ£à�Ü�Ñ�Ø�îAÎ(Ñ7Õãà{Ò�ß�ÕiÒ�æ ��à|ßUÐ UÑ7ÜjÖ�Û�Î(ѹÖ�Û�Ü�ß ��à|ßUÐ�Õ ó Ò�Ñ�îjÜ�Ú�Ó�Õ��v×NÎGÏ(Ü�ÐNÕãÎ ú Ò�U§æ¶ÒAÚ|Ú{ÒjôµÎ�ÓÀÜÔ�ÒAÑ�ήæ¶Ñ�Î@^]Ð�Î�ß]Ö4Ñ�Î(Ú{Î�Ü�Õ�Î�Õ�Ï7Û�Î�Ó�Ð�Ú|ÎAï ù ÒAÕãÖ4Ò�æ÷Ò�Ð�ѵÏ7Û�Î�Ï7ëUà{ß�çæ¶Ò£Ï(Ð�Õ)ôqÜ�Õ®ÒAß�Ö�Û�Î�î�Î�Ñ�Õ�à|ÒAß�Õ�k£ï w�ï y i k�ï wNï � k£è£Ö�Û�Ò�Ð�ç�Û&ôµÎÓ�à{Ó³Ï7Û�Î�Ï7ëeÒ�ß�ιÒ�Ð�Ö�Ú{Ø]à{ß�ç�îAÎ(Ñ7Õãà{Ò�ß ø k£ï w�ï � û ïö Û�à{Ú{ÎEÖ�Û�γ×�Ð�Ú{ëÂÒ�æ�ÒAÐ�Ñ�Ñ�Î�Õ�Ð�Ú|Ö�Õ$Ü�Ñ�ÎeÒAßj�÷à{ßUÐ Uvè�Ö�Û�Î

Ñ7Ü�ß�ç�Î�Ï7Û�ÎGÏ7ë�Î�Ñià�Õ4ÎGÜ�Õ�à|Ú{Ø�Ü�Ó�Ü�å£Ö�ÎGÓ�Ö�Ò$Ò�Ö�Û�Î(ÑqÕ�ØUÕãÖ�Î�Ô�Õ(ïIöÀÎÑ7Ü�ß Ö�Û�ÎiÏ7Û�Î�Ï7ëAÎ(Ñ7ÕQÒ�ß ü åNÎ�ß [ ÍPjk�ï ÿ®Ü�ß�Ó æ¶Ò�Ð�ßNÓ1Ö�Û�Î�Ñ7Ü�ß�çAÎÏ7Û�Î�Ï7ë�Î�ѵÖ�Ò�×QÎ ^AÐ�à·Ö�Î�ÕãÐNÏ(Ï=ÎGÕ�Õãæ¶Ð�Ú�ï!C)Î�Ñ�ÎAè�Î(Ñ�Ñ�Ò�Ñ7ÕiôµÎ(Ñ�ÎYîjÜ�Ú|âà�Ó�Ü�Ö�Î�ÓÀ×UØÉÕãÐ�×�Ô$à|ÖãÖ�à|ß�ç&Ö�Û�Î�Ô Ö�Ò ú ÒAÕãÖ�ܧͣÜ�å�Ð�ß]Ö�áGÜ�ëUà�Õ(è�ÜÚ{Ò£Ï(Ü�Ú [ ÍP±Û�Ü�Ï7ëAÎ(ÑGèGô®Û�Ò1à{ß$Ö�Ð�Ñ�ß�ÕãÐ�×�Ô$à|ÖãÖ�Î�Ó�Õ�Î�Ï=Ð�Ñ�à|ÖkØ�Ü�Ó£âîUà�ÕãÒAÑ�à{Î�ÕYæ¶Ò�Ñ�ÐNÕ(ïÇð�Ú|ÚµÒ�æ®Ö�Û�ÒAÕ�Î.×�Ð�çAÕ�Ñ�ÎGÕãÐ�Ú|Ö�ÎGÓÉà|ßÞë�Î(Ñ�ß�Î�ÚåNÜjÖ�Ï7Û�Î�Õ�ï

Page 14: Using Programmer-Written Compiler Extensions to Catch Security

����� � @��N�5- � �� � ����� .��A.�� � .��A.��� � .��A.�� ��� ������� � �#�;��� ��� � .��ó Ò�Ö�Ü�Úv×�Ð�çAÕ � k�y � k�÷Ò£Ï(Ü�Úv×�Ð�çAÕ ��� ÿ � k<1Ú|ÒA×�Ü�Úv×�Ð�çAÕ � q �[ Ð�çAÕµæ¶Ñ�Ò�Ô à{ߣæ¶Î(Ñ�Ñ�Î�ÓEÐ�ÕãÎ�Ñ®à|ß]Ö�Î(ç�Î�Ñ�Õ � k ��)Î=ÖkôµÒ�Ñ�ë�Î(Ñ�Ñ�Ò�Ñ7Õ � �V�Ü�Ú�Õ�Î1åQÒAÕ�à|Ö�à{î�Î�Õ k w w�)Ð�Ô�×NÎ�Ñ)Ò�æIÕãÒAÐ�Ñ�Ï(Î�Õ ÿ k�)Ð�Ô�×NÎ�Ñ)Ò�æIÕãà{ß�ë£Õ � y � u�)Ð�Ô�×NÎ�Ñ)Ò�æ�à|ߣæ¶Î�Ñ�Ñ�Î�Ó�Õ�à|ß�ëUÕ w ��)Ð�Ô�×NÎ�Ñ)Ò�æ�îLÜ�Ñ�à�Ü�×�Ú|ÎGÕ®Ï7Û�Î�Ï7ëAÎ�Ó Ñ�ÒAÐ�ç�Û�Ú|ØAu(y ��� ø ÒAß>k�ï wNï � k û y�ÿ�w

ó Ü�×�Ú|Î y aiÍ£Ð�Ô�Ô�Ü�Ñ�ØeÒ�æ�Î�U£åNÎ�Ñ�à{Ô�Î(ß]Ö�Ü�Ú÷Ñ�ÎGÕãÐ�Ú·Ö7Õ(ï

ó ÛUÐ�Õ�è�Ö�Û�ÎeÎ�Ñ�Ñ�Ò�Ñ7Õ¹ôµÎ(ß]Ö�Ö�Û�Ñ�ÒAÐ�ç�ۭܧÑ�à{ç�ÒAÑ�ÒAÐ�Õ¹Î)U�Ü�Ô$âà{ß�ÜjÖ�à|ÒAßbå�Ñ�Ò£Ï=ÎGÕ�Õ�ïbö Û�à|Ú{Î�Ö�Û�Î�Ñ�ΧÜ�Ñ�γÚ{à|ëAÎ(Ú{ØÂÖ�ÒÉ×QΧÕãÒAÔ$ÎæoÜ�Ú�Õ�Î�åNÒ]Õãà|Ö�à{î�ÎGÕ(è�ô4Î�ôµÒ�Ð�Ú{Ó�×QÎ�Õ�Ð�Ñ�å�Ñ�à�ÕãÎGÓ³à·æ�Ö�Û�à{Õ�ßUÐ�Ô�×QÎ(ÑôqÜ�ÕqÔ�Ò�Ñ�Î�Ö�Û�Ü�ß y m ï

� � �I3��)� 2i3���2o~��)���

ó Û�à�Õ Õ�Î�Ï�Ö�à|ÒAß ×�Ñ�à{Î)X�Ø�Ó£à�Õ�Ï(Ð�Õ�Õ�Î�ÕXÖkôµÒêÒ�Ö�Û�Î(Ñ Õ�Î�Ï(Ð�Ñ�à|ÖkØÏ7Û�ÎGÏ7ë�Î(Ñ7Õ�ï

� � � � -32<"%$��� 60& *0/�"%$#=19)" =��7"%$

ó Û�Î)ÐNÕãÎ�Ñãâ�åNÒAà|ß]Ö�Î(ÑiÏ7Û�ÎGÏ7ë�Î�Ñ�ôµÜ�Ñ�ßNÕ�ô®Û�Î(ß�åQÒ�à{ß]Ö�Î�Ñ�Õ4Ï=Ò�å�à|ÎGÓæ¶Ñ�Ò�ÔäÖ�Û�εÐNÕãÎ�ÑIÜ�Ñ�εӣÎ(Ñ�Î=æ¶Î�Ñ�Î�ß�Ï=ÎGÓvï�b�æ9Ü�åQÒ�à{ß]Ö�Î�Ñ�ÒAÑ�à{ç�à{ß�Ü�Ö�Î�Õæ¶Ñ�Ò�Ô Ü�ßÞÐ�ß]Ö�Ñ�Ð�ÕãÖkô4ÒAÑãÖ�ÛUØÉÕ�Ò�Ð�Ñ�Ï(Î�è�Ö�Û�Î&ë�Î�Ñ�ß�Î�ÚqÔ�Ð�ÕãÖ�Ð�ÕãÎ�����n� \(^��` ��b�a�^ Ö�Ò1ÜAÏ(Ï(Î�Õ�ÕvÖ�Û�ÎqÓ�ÜjÖ�Ü�Ñ�Î(æ¶Î(Ñ�Î(ß�Ï(Î�Ó�×]Ø1Ö�Û�ÜjÖåQÒ�à{ßAÖ�Î(ÑGï ó Û�Χë�Î�Ñ�ß�Î�Ú�Ï(Ü�ß�ß�Ò�ÖeÕãà{Ô�å�Ú|ØÙÓ£Î�Ñ�Î(æ¶Î(Ñ�Î(ß�Ï(Î�Ö�Û�ÎåQÒ�à{ßAÖ�Î(ÑGïöÀÎ Û�ÜLî�Îêå�Ñ�Î(îUà{Ò�Ð�Õ�Ú|Ø<å�Ñ�ÎGÕãÎ�ßAÖ�Î�Ó Ü�Ð�Õ�Î(Ñ�â�åQÒ�à{ß]Ö�Î(Ñ

Ï7Û�ÎGÏ7ë�Î(ÑqÖ�Û�ÜjÖ æ¶Ò�Ú{Ú|ÒjôµÎ�Ó�Õ�Ø£ÕkÖ�Î(ÔêÏ(Ü�Ú{Ú÷å�Ü�Ñ�Ü�Ô�Î=Ö�Î�Ñ�Õ�ý þ���Ü�ßNÓ×QÎ(Û�ÜLîUà{Ò�Ñ7Ü�Ú{Ú|Ø�à{ߣæ¶Î(Ñ�Ñ�ÎGÓ§ô®Û�à�Ï7ÛÀåNÒAà|ß]Ö�Î�Ñ�Õ1ëAÎ(Ñ�ß�Î(Ú�Ï=Ò£Ó£Î$×QÎ=âÚ{à|Î�î�Î�Ó§ô4Î�Ñ�Î�ÐNÕãÎ�Ñ�åQÒ�à{ßAÖ�Î(Ñ7Õ Ü�ß�Ó&ô®Û�à�Ï7Û§à|Ö ×QÎ(Ú{à|Î�î�ÎGÓ§ôµÎ(Ñ�Îë�Î�Ñ�ß�Î(Ú÷åQÒ�à{ß]Ö�Î(Ñ7Õ�ý ÿ�� ø Õãà{Ô�à|Ú�Ü�Ñ)Ö�Ò�Ö�Û�Î�à|ß�æ¶Î(Ñ�Î(ß�Ï(Î�à|ß �]u�ï � û ïð+ôµÎ�Ü�ëUß�Î�Õ�Õ.à{ß Ö�Û�à{ÕEå�Ü�ÕãÖ³Ï7Û�Î�Ï7ë�Î�Ñ.à�Õ.Ö�Û�ÜjÖ³à·Ö�Ó£à{Ó-ß�Ò�Öæ¶Ò�Ú{Ú{Òjô±Ó�ÜjÖ7Ü�Î)U£å�Ú{à�Ï=à|Ö�Ú{Ø�Ï(Ò�å�à{Î�Ó�æ¶Ñ�ÒAÔ#ÐNÕãÎ�ѵÕ�å�Ü�Ï(Î�ï�özÎ1Î)UUâÖ�Î�ß�Ó£ÎGÓYà·ÖIÐ�Õ�à|ß�ç®Ö�Û�Î4Ô�Ü�Ï7Û�à{ß�Î(Ñ�عӣÎ(îAÎ(Ú{Ò�åQÎ�Ó1æ¶Ò�Ñ�Ö�Û�ÎiÑ7Ü�ß�çAÎÏ7Û�ÎGÏ7ë�Î(ÑGïó Û�ιÐ�Õ�Î(Ñ�â�åQÒ�à{ß]Ö�Î�ѵÏ7Û�ÎGÏ7ë�Î�Ñ4Ð�Õ�Î�ÕµÖ�Û�ιÑ�Ü�ß�ç�ιÏ7Û�ÎGÏ7ë�Î(Ñ�� Õ

Ð�ß]Ö�Ñ�Ð�ÕãÖ�ÎGÓÇÕ�Ò�Ð�Ñ7Ï=ÎGÕ®Ö�ÒEÔ�Ü�Ñ�ë�Ü�Ú|Ú�îjÜ�Ú{Ð�Î�Õ1Ï=ÒAå�à{Î�Ó&æ¶Ñ�Ò�Ô Ü�ßÐ�ß]Ö�Ñ�Ð�ÕãÖ�ÎGÓ�Õ�Ò�Ð�Ñ7Ï=εÜ�Õ�Ö�Ü�à|ß]Ö�Î�Óvï b�Ö�Ü�Ú�ÕãÒ Ð�ÕãÎGÕIÕkÖ7ÜjÖ�Îqà{ß�Û�Î�Ñ�à|Öãâà{ß�ç�Ö�Ò�Ñ�ÎGÏ=Ð�Ñ7Õãà{î�Î�Ú|Ø$Ô�Ü�Ñ�ë�åNÒAà|ß]Ö�Î(Ñ7ÕµÏ(Ò�ß]Ö�Ü�à|ß�Î�Ó.à{ßEÖ�Ü�à{ß]Ö�ÎGÓÕãÖ�Ñ�Ð�Ï�Ö�Ð�Ñ�ÎGÕ�ÜAÕ�Ö7Ü�à{ß]Ö�Î�Ó÷ï\b�Ö$Ö�Û�Î(ßÞÐNÕãÎGÕ�à{ß]Ö�Î�Ñãâ�å�Ñ�ÒUÏ(Î�Ó£Ð�Ñ�Ü�ÚÜ�ßNÜ�Ú{ØUÕ�à�Õ÷Ö�Ò�æ¶ÒAÚ|Ú{ÒjôÂÖ�Ü�à|ß]Ö�Î�Ó�åQÒ�à{ß]Ö�Î�Ñ�Õ�è%XNÜ�ç�ç�à{ß�ç�Ü�ßUØ�Ó£Î(Ñ�Î=æ¤âÎ(Ñ�Î(ßNÏ=Î�ï�ö Û�à{Ú{Îeà|Ö�Õ�Ü�ß�Ü�Ú{Ø£Õãà�ÕYà�Õ�ÜAÕ�Ó£Î(Î�å÷è�Ö�Û�ÎEÎ)UUÖ�Î�ß�Õ�à|ÒAßà�Õ4Ô�Ð�Ï7ÛeÕ�à|Ô�å�Ú{Î(Ñ4Ö�ÛNÜ�ß.Ö�Û�Î1Ñ�Ü�ß�ç�Î�Ï7Û�Î�Ï7ë�Î�Ñ4Õ�à|ßNÏ=Î1à|ßEÔ$Ò]ÕkÖÒ�åQÎ(Ñ7ÜjÖ�à|ß�ç�Õ�ØUÕãÖ�Î�Ô�Õ�Ö�Û�Î(Ñ�Î Ü�Ñ�Î ß�Ò$Ï7Û�Î�Ï7ë£Õ�Ö�Û�ÜjÖ®Ï(Ü�ß.Ô�Ü�ë�ÎÖ�Ü�à|ß]Ö�Î�Ó³åNÒAà|ß]Ö�Î(Ñ7Õ®Õ�Ü�æ¶Î�ï

ö Û�Î�ß­ô4ÎEÑ�Ü�ßÉÖ�Û�ÎEÐ�Õ�Î(Ñ�â�åQÒ�à{ß]Ö�Î(Ñ$Ï7Û�Î�Ï7ëAÎ(Ñ�ÒAßF�÷à{ßUÐ U

� � ������� > ��� ��'9& �������C !���"��C5��<8P����������"��)� �����1 24�<8�� :�6�D�� ,56CXnE

��-�5�67,�1��7-<8n,�#�"�!��@2;:�$�#�1@=>����?@=A"���B�!�EM������ !�. N�5�� 8P������,�? !�.7,98�!%8n,�5���? !�2�$�#�1��TO��CD7, �CD717-���0���D �7/�!�=

:�$�# 1��TO��CD�, �CD�17-�� 8n�C5nEM������ �������� �!���"���5��<8P������� ��"+�)� *T5��<8P������,�?7!�. ,98(!C8n,�57��? !z����CD�.�5��<8n������,�?�!�.7,98(!98n,�5���?�!�2�O��CD��7-�O�, 0��CD �7/�! ,�. O��CD�=

8(!%8�� !7,�.j�C� !(E��1 2�2�O��CD[N�N�X�J K�K(E� � 2TO��CD���R<8n��?����$��N���6CX�Z4D ��,�W I��6 ��E�E

V�à{ç�Ð�Ñ�Î � y a¹ò�Õ�Î(ѹåQÒ�à{ß]Ö�Î(ÑYÎ�Ñ�Ñ�Ò�Ña �n�\�ôqÜ�Õ¹Ï=ÒAå�à|ÎGÓ&æ¶Ñ�Ò�ÔÖ�Û�ιÐ�Õ�Î(Ñ)Ü�ßNÓ.Ö�Û�Î(ß³Ö�Û�ιõ�Î(Ú�Ó��(�\#:�� �� ��P\P�!: ��_7�=� �(a ø ÜåQÒ�à{ß]Ö�Î�Ñ û à�ÕYå�Ü�Õ�Õ�Î�ÓÇÖ�Ò�Ö�Û�Îc�+��` � 7_ / a�� `+a�` ��_ / a³Ñ�Ò�Ð�âÖ�à|ß�ÎYô®Û�à{Ï7Û³å�Ñ�Ò�Ô�å£Ö�Ú|ØeÓ�Î(Ñ�Î=æ¶Î(Ñ�Î(ßNÏ=Î�Õqà|Ö�ï

k�ï wNï ÿ�â�ÜAÏ ��� à·Ö&æ¶ÒAÐ�ß�Ó qíÎ(Ñ�Ñ�ÒAÑ�Õ³ô®à|Ö�Û {­æoÜ�Ú�ÕãÎÉåQÒAÕ�à·Ö�à|îAÎ�Õ�ïó Û�Î�Õ�εÎ�Ñ�Ñ�Ò�Ñ7Õ�ô4ÒAÐ�Ú�Ó�×QÎ)Ô�à�Õ�Õ�Î�Ó$×UØ�ÒAÐ�Ñ�å�Ñ�à|ÒAÑ�ô4ÒAÑ�ë9ï ó Û�ÎæoÜ�Ú{Õ�Î�åQÒAÕ�à·Ö�à|îAÎ�Õ�ô4Î�Ñ�Î�Ô�Ü�à|ß�Ú{ØYÓ£Ð�ÎiÖ�Ò Ü�Õãà{ß�ç�Ú{Î4Õ�åQÎ�Ï=à�Ü�Ú|âPÏ(Ü�Õ�ÎÏ7Û�Î�Ï7ë�Ï(Ò�ßUî�Î�ßAÖ�à|ÒAß�å�Ñ�ÒjîUà�Ó£Î�Ó�×UØ�Ö�Û�Î / a�� ��b�a�^ � �®Ô�Ü�Ï(Ñ�ÒNïöÀÎ Ó�à{Óeß�Ò�Ö4Ö�Ü�ëAÎ)Ö�Û�Î�Ö�Ñ�ÒAÐ�×�Ú{Î)Ö�Ò�Ô�Ò£Ó£à·æ¶Ø�Ö�Û�ιÏ7Û�Î�Ï7ëAÎ(Ñ�Ö�ÒÎ�Ú|à{Ô�à|ßNÜjÖ�Î1Ö�Û�Î(Ô�ïó Û�ÎÙÔ�ÒAÕãÖÂÏ=Ò�Ô�Ô�Ò�ß�Î(Ñ�Ñ�ÒAÑzôqÜ�ÕÀÏ=ÒAåUØ]à{ß�çäÜCÕãÖ�Ñ�Ð�Ï=â

Ö�Ð�Ñ�Î)æ¶Ñ�Ò�Ô Ö�Û�Î Ð�Õ�Î(Ñ4Ö�ÛNÜjÖ®Ï=Ò�ß]Ö7Ü�à{ß�Î�Ó.Ü�åQÒ�à{ßAÖ�Î(ÑqÜ�ß�Ó.Ö�Û�Î�ßÓ�Î(Ñ�Î=æ¶Î(Ñ�Î(ßNÏ=à{ß�ç à·ÖGï V�à{ç�Ð�Ñ�Î � yíçAà|îAÎ�ÕzÜ Ñ�Î�å�Ñ�Î�Õ�Î(ß]Ö�Ü�Ö�à{î�ÎÎ�Ñ�Ñ�Ò�Ñ�Ö�Û�Ü�Ö$Ü�Ú{Ú{Òjô)Õ�Ü�ßÞÜ�ÖãÖ7Ü�Ï7ë�Î�ÑYÖ�ÒÀÏ=Ñ7Ü�Õ�ÛÉÖ�Û�ÎEÔ�Ü�Ï7Û�à{ß�Î�ïC�Î(Ñ�Î�ÜEÕkÖ�Ñ�Ð�Ï=Ö�Ð�Ñ�Î ø �n�P\ û à{Õ¹Ï=ÒAå�à{Î�Ó�æ¶Ñ�Ò�ÔêÐ�Õ�Î(ѹÕãåNÜ�Ï=ÎAïYðåQÒ�à{ß]Ö�Î�ÑEõNÎ(Ú�Ó±à|Ö&Ï(Ò�ß]Ö�Ü�à|ßNÕ ø �n�P\#:�� �� ��\P� : ��_��=��(a û à{ÕÖ�Û�Î(ßÇå�Ü�Õ�ÕãÎGÓ§Ü�Õ1Ü�ßzÜ�Ñ�ç�Ð�Ô�Î(ß]Ö)Ö�ÒEÜeÑ�ÒAУÖ�à{ß�Î�Ö�Û�ÜjÖYÓ£Î�Ñ�Î(æ¤âÎ�Ñ�Î�ß�Ï=ÎGÕµà·ÖGï

� ��� � � $ ��& *)+ -,2<"%$��/�$1& +7+�"%$8" � "%$8$167$12

ü Ð�Ñ�å�Ñ�à{Ò�Ñ�ôµÒ�Ñ�ëÉÏ7Û�Î�Ï7ëAÎ�ÓÂÔ�Ü�à{ß�Ú{ØÀæ¶Ò�Ñ�ß�Ò�ß�â�Õ�Î�Ï(Ð�Ñ�à|ÖkØÀÎ(Ñ�âÑ�Ò�Ñ7Õ�ï ð ÖkØ]å�à{Ï�Ü�Ú�Ñ�Ð�ßÀÏ(Ü�ß&õ�ß�ÓÇÛ]Ð�ß�Ó£Ñ�Î�Ó�Õ Ò�Ñ1Î(îAÎ(ß&Ö�Û�Ò�УâÕ�Ü�ßNÓ�Õ$Ò�æ1Õ�Ð�Ï7ÛíÎ(Ñ�Ñ�ÒAÑ�Õ�à{ßíÜÉÕ�ØUÕãÖ�Î�Ô<Ö�Û�Î�Õ�à{á(Î�Ò�æ �÷à{ß]ÐZU9ï

Page 15: Using Programmer-Written Compiler Extensions to Catch Security

� � �����@���7��� ��� �������C !���"��C$�/�- �"�� ������"�"+�4�+*������"�"�, ��- ��. /j���

��1@2)��- ��-98�8n��D ��� $�# 17, "���B ! R['C����&�&�&�E��!�.�# ��Dj�CG�6CX57 I�K�M

��1@2)��- ��-98�8n��D ��� $�# 17, "���B ! R &�E��$�# 1�1 N �8n��/�/�- � 24��-���-98�8n�CD ���T$�#�17, "���B�!�=0�����4EM�C1@2 $�# 1�1 N�N�X�J�K�KnE

� !�.�# ��Dj��G H�I�J K L@M���1 24��- ��-<8�8n��D �@�TV7!�# !7"�.���L�6�57!@�TZ����7!7��.���-�D

N�NB�H�G�V�, ��V�6�L�G(E ��C1 24��-�5�67,�1��7-<8n,�#�"�!��@2 �����4E�E

� !�.�# ��Dj��G H�I�J K L@MA����/�- "C. $�# 1�1��x���V�à|çAÐ�Ñ�Î � q aA�÷Ò]ÕkÖ�Ô�Î(Ô�Ò�Ñ�ØÀÕ�Î�Ï(Ð�Ñ�à·ÖkØÉÛ�ÒAÚ|ÎHaeܧÔ�Ü�Ú{à�Ï=à{Ò�Ð�ÕÐ�Õ�Î(ѵÏ(Ü�ß.Ï�Ü�Ð�Õ�ÎqÖ�Û�Î Ó£Ñ�à|îAÎ(Ñ�Ö�Ò�Ú{Î�Ü�ë�Ð�å�Ö�Ò � k�þ �-Ò�æ÷Ô�Î(Ô$âÒ�Ñ�Ø ø åNÒAà|ß]Ö�ÎGÓEÖ�Ò�×UØ �n�P\n\ û Ò�ß³Î�ÜAÏ7Û³Ï�Ü�Ú{Ú\ï

� � �+�������7��� ��� ��D !�.7����.%8n� ��-98�8n-�D �)� *���.C8n, ��-7��.7/z���"%5��CD�,�/�- �" 2;:7��.C8n,�� !� 7,�/�- ��PEM�������� "�! Y6 D��EDCJ7L � *������ !�.7,� ��/ N 5�# .7,�#�"�!��@2 ����� EM?7-�.7-�� -�D7!�M

��� "�! Y6 D�� 6CX � *������ !�.7,� ��/ N�5�#�.7,�#�"�!��@2 �����4EM?7-�.7-�� -�D7!�M

V�à|çAÐ�Ñ�Î � { a � Ò�Ö�Î�ßAÖ�à{Ü�Ú÷ÜjÖ�Ö�Ü�Ï7ëAÎ(Ñ�â�à{ß�à|Ö�à�ÜjÖ�Î�Ó³Ó£Î�ÜAÓ£Ú|Ò£Ï7ëSa�×QÎ=âÏ(Ü�Ð�Õ�Î�Ö�Û�Î(ØzÒ£Ï(Ï=Ð�ÑYô®à·Ö�ÛÉÜ&Õ�å�à{ßÉÚ|Ò£Ï7ë§Û�Î�Ú{Ó÷è�Î�ÜAÏ7ÛÀÏ�Ü�Ú{Ú�Ö�Ò�n� � ��b�a�^íÏ�Ü�ß±Ï�Ü�Ð�Õ�ΧÖ�Û�ÎzÕ�Ø£ÕkÖ�Î(Ô Ö�ÒíÓ£Î�ÜAÓ£Ú|Ò£Ï7ë9ï ó Û�à{ÕÕ�à|ß�çAÚ|ιÑ�Ò�УÖ�à|ß�Î1ÛNÜ�Ó � ÿ$ÕãÐNÏ7Û³Î�Ñ�Ñ�Ò�Ñ7Õ�ï

� ����������� ��� ��� �������� !���"���$�/�- �"�� ������"�"��)� *������"�"�,���- ��.7/ ���

�C1324��-C5 67,�.7-�,�#�"�!���2 ����� E�E���<8�� ,�1�� !�!+2�X�J K�K@=Q� EM��1 2�$�# 1�1 �TN X�J K�KnE71�� !�!�2�$�# 1�1(EM� !�.�# ��D�2 �CG H�I�J K�L(EM

��C1324��-���-98�8n�CD ���TZ��C� !7��.���-�D0N�N B�H�G�V�,CV�G I�ZnE

��1 24��-�5 6 ,�.7-�,�#�"�!��@2 ����� E�E'��<8��7,�1�� !�!�2�X�J K�K�=l�7EM71�� !�!+2�$�# 1�1�EM

�� 8��7,�1���!�!�2�X�J�K�K�=l�7EM�C132�$�#�1�1 ��N X�J K�KnE71�� !�!�2�$�# 1�1(EM

V�à|çAÐ�Ñ�Î � þ a Ò�Ð�×�Ú|Î(â\æ¶Ñ�Î(Î Õ�Î�Ï(Ð�Ñ�à·ÖkØ Û�Ò�Ú{Î.a Ö�Û�Î õ�Ñ7ÕkÖ�����n� �� ��b7a�^-Ï(Ò�Ñ�Ñ�ÎGÏ�Ö�Ú|Ø-Ó�Î�Ü�Ú{Ú{ÒUÏ�ÜjÖ�Î�Õ&à|Ö�Õ§ÕãÖ�ÒAÑ�Ü�ç�ÎÂÜ�ßNÓÑ�Î=Ö�Ð�Ñ�ß�Õ�ô®à·Ö�ÛÞÜ�ßÂÎ�Ñ�Ñ�Ò�ÑGï ó Û�ÎEÕ�Î�Ï(Ò�ß�ÓÂÜ�å�åQÎ�Ü�Ñ7Õ¹Ö�ÒÇÛ�ÜLîAÎÒ�Ô�à|ÖãÖ�Î�ÓÉܳÑ�Î(Ö�Ð�Ñ�ßÀÕãÖ�Ü�Ö�Î�Ô$Î�ß]Ö�è÷Ö�ÛUÐ�Õ�Ï(Ü�Ð�Õ�à|ß�ç�Ï=ÒAß]Ö�Ñ�Ò�ÚIÖ�ÒæoÜ�Ú{ÚvÖ�Û�Ñ�ÒAÐ�ç�Û�Ü�ßNÓEÓ£ÒAÐ�×�Ú{Î1æ¶Ñ�Î�ÎY×NÒ�Ö�Û ��Ü�ßNÓE�n�\n\Qï

ó ÛUÐ�Õ�èQà|ߧå�Ñ�ÜAÏ�Ö�à�Ï=ÎAèNÔ�Ü�ß]سÎ(Ñ�Ñ�Ò�Ñ7Õ)Ü�Ñ�Î�ß�Ò�Ö�õZU£Î�Ó÷ï ò)ß�æ¶Ò�Ñ�âÖ�Ð�ß�Ü�Ö�Î(Ú{Ø�è�à|æ Ü�ß]ØÀÒ�æ�Ö�Û�ÎGÕãÎEÐ�ߣõZU£Î�Ó­Î(Ñ�Ñ�ÒAÑ�Õ�Ï�Ü�ß­×QÎEÖ�Ñ�à|ç�âçAÎ(Ñ�Î�Ó�×UØ�ÜYÐ�Õ�Î(ÑGè�Ö�Û�Î(Ø.Ü�Ñ�Î Ü�Õ�Î�Ï=Ð�Ñ�à|ÖkØ�Ñ�à�Õãë9ïIð)ßEÜ�ÖãÖ7Ü�Ï7ë�Î�ÑÏ(Ò�Ð�Ú�Ó.ÐNÕãÎ Ö�Û�Î�Ô Ü�Õ4Ö�Û�ι×�Ü�Õ�à{ÕµÒ�æ�Ü�Ó�à `.Ï=Ð�Ú·Ö�â\Ö�Ò�â�Ö�Ñ7Ü�Ï7ë�Ó£Î=âß�à{Ü�ÚvÒ�æ�Õ�Î(Ñ�îUà{Ï(Î1Ü�ÖãÖ7Ü�Ï7ë�×UØeÓ£Î�Ú|à{×NÎ�Ñ�Ü�Ö�Î�Ú|Ø�Ö�Ñ�à{ç�çAÎ(Ñ�à|ß�ç�Ö�Û�Î(ÔÖ�Ò�Ï(Ü�ÐNÕãιÑ�Î�Õ�Ò�Ð�Ñ7Ï=ÎGÕiÚ{Î�Ü�ëUÕqÒAÑ®Î(îAÎ(ß³Ô�ÜAÏ7Û�à{ß�ÎYÏ=Ñ7Ü�Õ�Û�Î�Õ�ï

ó Û�ÎiÎ)UUÖ�Î�ß�Õãà{Ò�ß¹à{ß¹Ö�Û�à�Õ�Õ�Î�Ï=Ö�à{Ò�ß$XNÜ�çAÕvÎ�Ñ�Ñ�Ò�Ñ7ÕNÖ�Û�Ü�Ö�ÕãÎ�Î(ÔÖ�Ò.×QÎ�Î�UUå�Ú|ÒAà·Ö7Ü�×�Ú{Î�×UسÖ�Û�Î$Ð�Õ�Î(ÑGï b�Ö1Ñ�Ð�ß�Õ�×NÎ(æ¶Ò�Ñ�Î�ß�ÒAÑ�Ô�Ü�ÚÏ7Û�Î�Ï7ëUà|ß�ç�Î�U]Ö�Î(ß�Õ�à{Ò�ß�Õ)Ü�ß�Ó³Ô�Ü�Ñ�ëUÕqåNÜjÖ�ÛNÕ®Ñ�ÎGÜ�Ï7Û�Ü�×�Ú{Î�æ¶Ñ�Ò�ÔÖ�Û�Î�Ð�Õ�Î(Ñ�Ü�Õ$Î)U£å�Ú{Ò�à|Ö�Ü�×�Ú{ÎEå�Ü�Ö�Û�Õ�ï ��ÜjÖ�Î(ÑGè�ô®Û�Î�ßíÜÉÕãÖ�Ü�ß�âÓ�Ü�Ñ7ÓÇÏ7Û�ÎGÏ7ë�Î(ѹÎ�Ô$à|Ö�Õ�Ü�ßÀÎ(Ñ�Ñ�ÒAÑ�è÷Ü�Ï=ÐNÕkÖ�Ò�Ô+å�Ñ�à{ßAÖ�à|ß�ç³Ñ�Ò�Ð�âÖ�à|ß�ÎÇÏ7Û�Î�Ï7ë£Õ�æ¶ÒAÑ.Ö�Û�Î-Ý�Î)U£å�Ú{Ò�à|Ö�Ü�×�Ú|ÎGéÀÜ�ß�ß�Ò�Ö�ÜjÖ�à|ÒAß±Ü�ß�ÓÙà|æà|Ö$Ö�Û�Î�Ñ�γÔ�Ü�Ñ�ëUÕ�Ö�Û�ÎEÎ�Ô�à·Ö�Ö�Î�ÓbÎ(Ñ�Ñ�Ò�Ñ�Ü�Õ$ÜzÕ�Î�Ï(Ð�Ñ�à|ÖkØÂÑ�à{Õ�ë9ïó Û�Î�Õ�Î1Î�Ñ�Ñ�Ò�Ñ7ÕµÜ�Ñ�Î1Ñ7Ü�ß�ë�Î�ÓEÜ�×QÒjî�ιÜ�Ú{Ú÷Ò�Ö�Û�Î(Ñ7Õ�ïó Û�ÎiÎ)UUÖ�Î�ß�Õãà{Ò�ß¹Û�Î�Ð�Ñ�à{ÕãÖ�à�Ï(Ü�Ú|Ú{Ø)Ô�Ü�Ñ�ë£Õ9Ökô4Òqå�Ü�Ö�Û�Õ�Ü�ÕvÎ�UUâ

å�Ú|ÒAà·Ö7Ü�×�Ú{Î�å�Ü�Ö�Û�Õ@a ø � û Ö�Û�ÒAÕ�Î�Ö�ÛNÜjÖ�Ï=ÒAßAÖ7Ü�à{ßÇÏ(Ü�Ú|Ú�Õ Ö�Ò�Ï=ÒAå]ØÓ�ÜjÖ�ÜÞ×NÎ(Ökô4Î�Î(ßXë�Î�Ñ�ß�Î�Ú1Ü�ß�Ó±ÐNÕãÎ�Ñ�Õ�å�ÜAÏ=ÎÉÜ�ß�Ó ø k û Ö�Û�ÒAÕ�ÎÖ�Û�ÜjÖ�Ï(Ò�ß]Ö�Ü�à|ßÉÜ�ßUØÇÏ�Ü�Ú{Ú�Ö�ҧܳæ¶Ð�ß�Ï�Ö�à|ÒAßzÖ�Û�ÜjÖ$Ï7Û�Î�Ï7ë£Õ1åNÎ�ÑãâÔ�à�Õ�Õ�à{Ò�ß�Õ�ï ó Û�Î$Ð�ß�Ó£Î(Ñ�Ú{Ø]à{ß�ç�Ñ7ÜjÖ�à{Ò�ßNÜ�Ú{Î�æ¶ÒAѹÖ�Û�Î�Û�Î�Ð�Ñ�à�ÕãÖ�à�Ïà�ÕqÖ�Û�ÜjÖ Õ�Ð�Ï7Û&Ï(Ü�Ú|Ú�Õ)Ü�Ñ�ιç�Î�ß�Î(Ñ7Ü�Ú{Ú{Ø.Ñ�ÎGÜ�Ï7Û�Ü�×�Ú{Î1×UØeÖ�Û�Î�ÐNÕãÎ�ÑÕ�à{ß�Ï=ήÖ�Û�Î Õ�Ø£ÕkÖ�Î(Ô Ó£ÒUÎ�Õ4ß�Ò�ÖµÏ=Ò�åUØ�Ó�ÜjÖ7ÜYÒ�ѵÏ7Û�Î�Ï7ë�åNÎ�Ñ�Ô�à�ÕkâÕ�à{Ò�ß�ÕµÒ�ß&Ü$ô®Û�à{Ô�ïEV�Ð�Ñ�Ö�Û�Î�Ñ®Ö�Û�ÎYÐ�ÕãÎ�Ñ)Ï(Ü�ß³Ï(Ò�ß]Ö�Ñ�Ò�Ú9ô®Û�à�Ï7ÛåNÜjÖ�Û�à{Õ�Ö�Ü�ë�Î(ß�avÖ�Û�εÕãÐNÏ(Ï=ÎGÕ�Õãæ¶Ð�Ú]×�Ñ7Ü�ß�Ï7Û�×UØYÕ�ÜjÖ�à�Õãæ¶Ø]à{ß�ç)ß�Î�Ï�âÎGÕ�Õ�Ü�Ñ�Ø�Ï7Û�Î�Ï7ë£Õ�èNÖ�Û�Î$æoÜ�à{Ú|ÎGÓ§×�Ñ7Ü�ßNÏ7Û§×UØ&å�Ü�Õ�Õãà{ß�çEà|ßÀÜe×�ÜAÓåQÒ�à{ß]Ö�Î�Ñ ÒAÑ�×UØ&Ü�Õ�ë]à{ß�ç�æ¶ÒAÑ1Ü�ߧÒ�åQÎ(Ñ7ÜjÖ�à|ÒAß&Ö�ÛNÜjÖ�Ö�Û�Î(Ø&Ú�Ü�Ï7ëåQÎ(Ñ�Ô�à{Õ�Õ�à|ÒAß�Õ4æ¶Ò�ÑGïó Û�ÎYÎ�UUÖ�Î(ßNÕãà{Ò�ßEæ¶Ò�Ð�ßNÓeÖ�Û�Ñ�Î(ÎYÏ=Ú�Ü�Õ�ÕãÎGÕµÒ�æIÎ(Ñ�Ñ�ÒAÑ�Õ@a

� ï ó Î�ß�å�Ú�Ü�Ï(Î�Õ�à{ß �÷à{ßUÐ U k£ï w�ï w�âPÜ�Ï�þqô®Û�Î(Ñ�ÎqÕkÖ�Ò�Ñ7Ü�ç�ÎiôµÜAÕß�Ò�Ö¹Ñ�Î(Ú{Î�Ü�Õ�Î�Ó�à{ßÀÑ�ÎGÕãåQÒ�ß�Õ�ÎYÖ�ÒEÐ�Õ�Î(Ñ1Î(Ñ�Ñ�Ò�Ñ7Õ(ï1ð�Ô�Ü�âÚ|à�Ï=à{Ò�ÐNÕiÐ�Õ�Î(ÑqÏ=ÒAÐ�Ú�Ó.Î�ÜAÕãà{Ú{Ø�Ï�Ü�Ð�Õ�Î)Ö�Û�Î1ë�Î(Ñ�ß�Î�Ú�Ö�Ò�Ñ�Ð�ßÒ�УÖ�Ò�æ1Ô�Î(Ô�Ò�Ñ�ØÂ×UØÂÑ�Î�åNÎGÜjÖ�ÎGÓ­à{ßUî�Ò£Ï(Ü�Ö�à{Ò�ß�Õ�ï V�à|ç�âÐ�Ñ�Î � q$ç�à{î�Î�ÕµÒAß�ÎYÒ�æ�Ö�Û�ÎYÔ�Ò�Ñ�ιÎ(çAÑ�Î�ç�à{Ò�Ð�Õ4Ú|ÎGÜ�ë£Õ�ï

k£ï)ÍUàPU]ÖkØ]â�Ökô4ÒEÐ�ß�à ^]Ð�Î�Î(Ñ�Ñ�ÒAÑ�Õ à|ßzîjÜ�Ñ�à|ÒAÐ�Õ1à|ß�Ï(Ñ�Î�Ô�Î(ß]Ö�Ü�Úî�Î�Ñ�Õ�à|ÒAß�ÕµÒ�æo�÷à{ßUÐ U>k�ï wNï w�ô®Û�Î�Ñ�ÎYÜ�Ï�Ü�Ú{ÚvÖ�Ò.Ü�×�Ú{Ò£Ï7ë]âà|ß�ç�èUÐ�Õ�Î(Ñ�â�Ó�Ü�Ö�Ü�Ï(Ò�åUØ�Ñ�ÒAУÖ�à{ß�Î1Ú|Î(Ö�ÕqÜ�ßEÜjÖãÖ7Ü�Ï7ëAÎ(ÑiåQÒ�âÖ�Î�ßAÖ�à{Ü�Ú|Ú{ØeÓ£ÎGÜ�Ó£Ú{Ò£Ï7ë�Ö�Û�ÎYÕ�Ø£ÕkÖ�Î(Ô ×UØ.çAà|îUà{ß�ç�Ö�Û�Î ü ÍÜÉåNÒAà|ß]Ö�Î(Ñ�Ö�ÒÂÔ$Î�Ô�Ò�Ñ�Ø­Ö�ÛNÜjÖ.Û�ÜAÕ�×NÎ�Î(ß å�Ü�ç�ÎGÓ­Ö�ÒÓ£à�Õãë9è Ö�Û�Î�Ñ�Î�×]ØCÏ(Ü�ÐNÕãà{ß�çÞà|Ö&Ö�ÒÙÕ�Ú|Î�Î(åXô®à·Ö�ÛXÜíÚ{ÒUÏ7ëÛ�Î(Ú�Óvï V�à|çAÐ�Ñ�Î � {&çAà|îAÎ�Õ�Ökô4ÒÉÕ�Ð�Ï7ÛbÎ�Ñ�Ñ�Ò�Ñ7Õ�æ¶Ñ�ÒAÔ ÜÑ�ÒAУÖ�à{ß�Î ø _��7` 7���5� � û Ö�Û�Ü�ÖqÛNÜ�Ó � ÿ$à{ßeÖ�Ò�Ö�Ü�Ú\ï

u�ï ó ô4Ò�Ó£ÒAÐ�×�Ú{Î=â�æ¶Ñ�Î�Î�Î(Ñ�Ñ�Ò�Ñ7Õ�à{ß k�ï wNï w�â�ÜAÏ(þ�ï�V�à{ç�Ð�Ñ�Î � þç�à{î�ÎGÕ�×QÒ�Ö�Û siß�Ò�Ö�Î.Ö�Û�Î(ØÂÜ�Ñ�Î.à{ßÂÖ�Û�ÎEÕ�Ü�Ô�Î.Ñ�Ò�УÖ�à|ß�Îø �n� (b(b 7���� � û æ¶Ñ�ÒAÔ V�à|çAÐ�Ñ�Î � q�ï

ó Û�Î�Î)UUÖ�Î(ß�Õ�à|ÒAßÇÜ�Ú�Õ�Ò.Ñ�Î�à|ß�æ¶Ò�Ñ7Ï=Î�Õ)Ö�Û�Î$åQÒ�à{ßAÖ¹Ò�æ4Í£Î�Ï�Ö�à|ÒAß�y aÏ7Û�Î�Ï7ë�Î�Ñ�Õ-Ü�Ñ�Î�Ü�ß Î)�9Î�Ï�Ö�à|îAÎ ôqÜLØ Ö�Ò Î�ߣæ¶Ò�Ñ7Ï=Î�åNÒUÒAÑ�Ú{Ø]âÐ�ß�Ó£Î(Ñ7ÕãÖ�ÒUÒ£Ó�Ñ�Ð�Ú|ÎGÕ(ïFbPß�Ö�Û�à{Õ�Ï�Ü�Õ�Î�èjÒAß�Î4Ò�æ�Ö�Û�εÎ�Ñ�Ñ�Ò�Ñ7Õ�Ü�ß�ß�Ò�âÖ7ÜjÖ�Î�Ó�×UØ�Ö�Û�Î�Î�UUÖ�Î(ßNÕãà{Ò�ß�Û�ÜAÓ.Ü�å�åNÎGÜ�Ñ�Î�Ó$à|ßEÜYå�Ñ�à|ÒAÑiå�Ü�åNÎ�Ñô®à|Ö�Û�Ò�УÖ)Ð�ÕqÑ�Î�Ü�Ú|à{á(à{ß�ç�Ö�Û�Ü�Ö)à·Ö)ôqÜ�Õ®Ü�Õ�Î�Ï(Ð�Ñ�à|ÖkØ.Ñ�à{Õ�ë��

Page 16: Using Programmer-Written Compiler Extensions to Catch Security

� } � '=�1����Ì � �� ~

ó Û�Î�Ñ�Î�Ü�Ñ�ÎYÔ�Ü�ßUØEÔ$Î(Ö�Û�Ò£Ó�Õ)æ¶Ò�Ñ®õNß�Ó£à{ß�çeÕ�Ò�æ¤ÖkôqÜ�Ñ�Î1Î�Ñ�Ñ�Ò�Ñ7Õ�ïó Û�Î�Ô�Ò]ÕkÖ�ô®à{Ó£Î�Ú|Ø1Ð�Õ�Î�ÓvèGÖ�Î�ÕãÖ�à{ß�ç�Ü�ßNÓYÔ�Ü�ßUÐ�Ü�Ú�à|ß�Õ�åQÎ�Ï�Ö�à|ÒAß÷èÕ�Ð �QÎ�Ñ)æ¶Ñ�Ò�Ô Ö�Û�Î�Î)U£åQÒ�ß�Î�ß]Ö�à�Ü�Ú�ßUÐ�Ô�×NÎ�Ñ�Ò�æ�Ï(Ò£Ó£Î�å�Ü�Ö�Û�Õ�à|ßÑ�Î�Ü�Ú4ÕãØ£ÕãÖ�Î(Ô�Õ�Ü�ß�ÓÀÖ�Û�Î.Î(Ñ�Ñ7ÜjÖ�à�Ï�ß�Ü�Ö�Ð�Ñ�Î.Ò�æ®ÛUÐ�Ô�Ü�ß �kÐNÓ£ç�âÔ�Î(ß]Ö�ï [ Î(Ú{ÒjôYè¹ô4έÏ(Ò�Ô�å�Ü�Ñ�ÎÂÒ�Ð�ѧÜ�å�å�Ñ�ÒAÜAÏ7Û-Ö�Ò Ò�Ö�Û�Î(ÑÔ�Î=Ö�Û�Ò£Ó�Õ�Ò�æ�õ�ß�Ó£à{ß�çeÕ�Î�Ï(Ð�Ñ�à·ÖkسÎ(Ñ�Ñ�ÒAÑ�Õ)à|ßÇÕ�Ò�æ¤ÖkôqÜ�Ñ�Î.a4Û�à{ç�Û£âÚ{Î(î�Î�Ú)Ï=ÒAÔ$å�à|Ú�ÜjÖ�à|ÒAß÷èµÓ�Ø]ßNÜ�Ô�à{Ï&Ï7Û�Î�Ï7ëUà|ß�ç�èqÜ�ß�ÓÞÖkØUåNÎÇÕ�Ø£ÕkâÖ�Î�Ô�Õ(ï

ó Û�Î�Ñ�γÛ�Ü�Õ�×QÎ(Î�ßbÔ�Ð�Ï7ÛíÑ�ÎGÏ=Î(ß]Ö�ôµÒ�Ñ�ëÂà|ßÙÜ�УÖ�Ò�Ô�ÜjÖ�à{ÏÕãÖ�ÜjÖ�à{ÏÇÓ£Î=Ö�Î�Ï�Ö�à|ÒAß Ò�æ�Õ�Î�Ï=Ð�Ñ�à|ÖkØÞÛ�ÒAÚ|ÎGÕ(ï [ à�ÕãÛ�ÒAå Ü�ß�Ó0 à|Ú|âç�Î�ѵý k��£ôµÎ(Ñ�Î4Ü�Ô$ÒAß�ç)Ö�Û�ÎqÎ�Ü�Ñ�Ú{à|ÎGÕkÖGèjÜ�ß�Ó�Ó£Î�Õ�Ï=Ñ�à|×QÎqÜ Õ�Ø£ÕkÖ�Î(ÔÖ�ÛNÜjÖIÐ�ÕãÎGÕ�çAÚ|ÒA×�Ü�Ú]à{ߣæ¶Ò�Ñ�Ô�ÜjÖ�à{Ò�ß�Ö�Ò Ó�Î=Ö�ÎGÏ�ÖYÝkÖ�à|Ô�Î(â�Ò�æ¤â�Ï7Û�ÎGÏ7ë]âÖ�Ò�â\Ö�à|Ô�Î(â�Ò�æ¤â�Ð�Õ�Î�é ø ó üYú ó®ó ü ò û Ñ7Ü�Ï(εÏ(Ò�ß�Ó�à·Ö�à|ÒAß�ÕIà|ß$å�Ñ�à|î]âà{Ú|Î�ç�Î�Ó ò�ß�àPU Ü�å�å�Ú{à{Ï�ÜjÖ�à|ÒAß�Õ(ï ù Ò�Ñ�ΧÑ�ÎGÏ=Î�ßAÖ�Ú|ØAèqÖ�Û�Î�Ñ�ÎÇÛ�Ü�Õ×QÎ(Î(ß ôµÒ�Ñ�ëÂÒ�ßíõ�ßNÓ£à|ß�çÂà|ߣæ¶ÒAÑ�Ô�Ü�Ö�à{Ò�ßÙÚ|ÎGÜ�ë£Õ&ý � k��èqà|ß]Ö�Ñ�УâÕ�à|ÒAßCÓ£Î(Ö�Î�Ï=Ö�à{Ò�ß ý � {��è1Ü�ß�ÓXÜÞÚ{Ò�Ö&Ò�æ�ÜjÖ�Ö�Î(ß]Ö�à|ÒAßCå�Ü�à{Ó-Ö�ÒÓ£Î(Ö�Î�Ï=Ö�à{ß�çÀ×�Ð �9Î(Ñ�Òjî�Î�ÑCXNÒjô)Õ.ý q�è ��� è � u�è � q£è � þ%��ï ù ÒAÑ�Îç�Î�ß�Î(Ñ7Ü�Ú{Ú{ØÇÔ�Ü�ßUØÉå�Ñ�Ò��kÎ�Ï=Ö�Õ�Û�ÜLî�Î.Î�Ô�×QÎ�Ó�Ó�Î�ÓÂÛ�Ü�Ñ�Ó£â�ô®à{Ñ�ÎGÓÜ�å�å�Ú|à�Ï(Ü�Ö�à{Ò�ߣâ�Ú{Î(î�Î�Ú÷à{ߣæ¶Ò�Ñ�Ô�ÜjÖ�à{Ò�ß�à{ßÇÏ=ÒAÔ�å�à|Ú{Î(Ñ7ÕqÖ�Ò�õ�ß�Ó�Î�ÑãâÑ�Ò�Ñ7Õ�ý � è kUè�u�è�{£è � w�è � þ���ï�ðµÖYÜEÚ{Òjô Ú|Î�î�Î�Ú\èvÒAÐ�ÑYÏ7Û�Î�Ï7ëAÎ(Ñ7Õõ�ß�ÓzÓ£àP�QÎ�Ñ�Î�ßAÖ¹Î(Ñ�Ñ�Ò�Ñ)ÖkØUåQÎ�Õ Ö�ÛNÜ�ߧÖ�Û�à�Õ å�Ñ�à{Ò�Ñ1ô4ÒAÑ�ë9ï¹ðµÖ¹ÜÛ�à{ç�Û�Î�Ñ�Ú{Î(îAÎ(Ú�è�Ö�Û�Î�Õ�Î�å�Ñ�Ò��kÎGÏ�Ö7Õ®õ�ß�ÓzÜ�õZU£Î�ÓÇÕãÎ(Ö Ò�æ�Î�Ñ�Ñ�Ò�Ñ7Õ�èô®Û�Î�Ñ�ÎGÜ�ÕvôµÎ�ÕãÛ�ÒjôÇÖ�Û�ÜjÖIÜqç�Î(ß�Î(Ñ7Ü�Ú�è�Î�U]Ö�Î(ß�Õ�à{×�Ú|Î�æ¶Ñ�Ü�Ô$Î�ô4ÒAÑ�ëÏ(Ü�ß�×NÎ�Ð�ÕãÎGÓ�à{ß�ÕkÖ�Î�ÜAÓvèAÜ�Ú|Ú{Òjô®à|ß�ç¹Ö�Û�Î1Ï7Û�Î�Ï7ëUà{ß�çYÒ�æ÷ÜY×�Ñ�ÒAÜAÓÑ7Ü�ß�çAÎ Ò�æIÕ�Ø£ÕkÖ�Î(Ô$â�Õ�åQÎ�Ï=à|õNÏ1å�Ñ�Ò�åQÎ(Ñ�Ö�à{Î�Õ�ï

bPß$Ö�Û�Î)Ï(Ò�ß]Ö�Î�UUÖIÒ�æ9Ó�Ø]ßNÜ�Ô�à{Ï®Ü�ß�Ü�Ú{Ø£Õãà�Õ�èjÖ�Û�Î�ÝãÖ�Ü�à|ß]Ö�à{ß�ç]éæ¶Î�Ü�Ö�Ð�Ñ�Î�à{ß � Î(Ñ�Ú4ý � ÿ%��à�Õ�Üeô®à{Ó£Î�Ú|Ø]â�Ð�Õ�Î�ÓvèNÎ)�9Î�Ï�Ö�à|îAÎ�ôqÜLØEÒ�æõ�ß�Ó�à|ß�çÇÐ�ß�Ï7Û�ÎGÏ7ë�Î�ÓÀÐ�Õ�Î�Õ�Ò�æqÐ�ß]Ö�Ñ�Ð�ÕkÖkôµÒ�Ñ�Ö�ÛUØÇÓ�ÜjÖ�Ü�ï bPß­ÜÕ�Î(ß�Õ�Î.Ö�Û�ÎEÜ�å�å�Ñ�ÒAÜ�Ï7Û�Î�Õ�Ü�Ñ�γÏ=Ò�Ô�å�Ú{Î(Ô�Î�ßAÖ7Ü�Ñ�Ø�ïÉÍUÐ�Ï7ÛÞÓ£Ø]âß�Ü�Ô$à�Ï�Ô$ÒAß�à|Ö�Ò�Ñ�à{ß�çeÕ�Î(Ñ�î�Î�Õ1Ü�Õ1Ü.ÛNÜ�Ñ7Ó&Î(ß�Ó£â\Ö�Ò�â�Î(ß�Ó§Ï7Û�Î�Ï7ëÖ�ÛNÜjÖ�ß�ÒÀÎ(Ñ�Ñ�ÒAÑ�à�Õ�Ô�ÜAÓ£Î�ïíÍ]Ö�Ü�Ö�à�ÏEÜ�ß�Ü�Ú{Ø£Õãà�Õ�Ü�Ú|Ú{Òjô)Õ�Ö�Û�ÎGÕãÎÎ(Ñ�Ñ�Ò�Ñ7Õ�Ö�Ò�×NÎ�Ï�Ü�Ð�çAÛAÖ)Ü�Ö®Ï(Ò�Ô�å�à{Ú|Î1Ö�à|Ô�Î�ô®à|Ö�Û�ÒAУÖ)Ñ�Ð�ß]Ö�à{Ô$ÎÒjî�Î�Ñ�Û�Î�Ü�Ó÷èiÑ7ÜjÖ�Û�Î(Ñ�Ö�Û�Ü�ßÙåQÒ�Ö�Î�ß]Ö�à�Ü�Ú{Ú|ØÙÏ=Ñ7Ü�Õ�Û�à{ß�çÀÖ�Û�ÎÇÕ�Ø£ÕkâÖ�Î�Ô�ï � Ñ7Ü�çAÔ�Ü�Ö�à�Ï(Ü�Ú|Ú{Ø�èqÖ�Û�ÎÉÎ)�9Ò�Ñ�Ö³Ò�æ�Ü�Ó�Ó�à|ß�çÙÕ�Ð�Ï7ÛCÓ£Ø]âß�Ü�Ô$à�ÏÀà|ß�æ¶Ò�Ñ�Ô�Ü�Ö�à{Ò�ß-Ö�ÒÙÜbÕ�Ø£ÕkÖ�Î(Ô�Õ�å�Ñ�Ò�ç�Ñ7Ü�Ô�Ô�à{ß�ç­Ú�Ü�ߣâç�ÐNÜ�ç�ιÕ�Î(Î(Ô�ÕqÔ�Ð�Ï7Û�ç�Ñ�Î�ÜjÖ�Î(ѵÖ�ÛNÜ�ß³ô®Ñ�à|Ö�à{ß�ç.Ï7Û�ÎGÏ7ë�Î(Ñ7Õ�ï

��Ü�ß�ç�ÐNÜ�ç�Î�ÖkØUåNÎ�Õ�ØUÕãÖ�Î�Ô�Õ å�Ñ�ÒA×�Ü�×�Ú{Ø�õ�ß�ÓzÔ�Ò�Ñ�Î�×�Ð�çAÕÒ�ß&Ü�Ó�Ü�à|Ú{Øe×�ÜAÕãà�ÕµÖ�ÛNÜ�ß&Ü�ßUØ.Ò�Ö�Û�Î�Ñ)Ü�УÖ�Ò�Ô�ÜjÖ�à{ϹÜ�å�å�Ñ�Ò]Ü�Ï7Û÷ïC)ÒjôµÎ(îAÎ(ÑGè(Ô�Ü�ßUØ å�Ñ�ÒAç�Ñ7Ü�Ô±Ñ�Î�ÕãÖ�Ñ�à�Ï�Ö�à{Ò�ßNÕ)i Î�Õ�åNÎGÏ=à�Ü�Ú{Ú|ØqÖ�Î(Ô$âåQÒ�Ñ7Ü�ÚQÒ�Ñ4Ï(Ò�ß]Ö�Î�UUÖãâPÓ£Î(åQÎ(ß�Ó�Î(ß]ÖµÑ�Î�ÕãÖ�Ñ�à�Ï�Ö�à{Ò�ßNÕ)i±Ü�Ñ�ÎqÖ�ÒUÒ�Ñ�à�Ï7Ûæ¶Ò�ѹÜ�ßzÐ�ß�Ó£Î�Ñ�Ú{ØUà|ß�ç.ÖkØUåNÎ�Õ�ØUÕãÖ�Î�Ô Ò�ѹÜ�Ñ�Î�Õ�à|Ô�å�Ú{Ø&ß�Ò�Ö¹Î)UUâå�Ñ�Î�Õ�ÕãÎGÓ­à{ßÙà·ÖGï ö Û�à|Ú{γÖ�Û�Î�Ñ�Î&ÛNÜ�Õ$×NÎ�Î(ß Õ�Ò�Ô�Î�ô4ÒAÑ�ëÂÒAßÑ�à{Ï7Û�Î�Ñ�æ¶Ñ7Ü�Ô�Î�ô4ÒAÑ�ë£Õ�Õ�Ð�Ï7ÛÇÜAÕ ó ØUåNÎLÍ]Ö�Ü�Ö�Î�ý � y��è���Ü�Ð�Ú|Ö.ý y��èÜ�ßNÓ/ÜAÕãåQÎ�Ï=Öãâ�Ò�Ñ�à|Î�ßAÖ�Î�Ó å�Ñ�ÒAç�Ñ7Ü�Ô�Ô�à|ß�ç ý ��� ��è§Ö�Û�Î�Õ�Î ÕkÖ�à|Ú{ÚÔ�à{Õ�ÕEÔ�Ü�ßUØÙÕ�Ø£ÕkÖ�Î(Ô�Õ³Ñ�Î�Ú{Ü�Ö�à{Ò�ß�ÕEÜ�ß�Ó±Ñ�Î^AÐ�à|Ñ�ÎÇå�Ñ�Ò�çAÑ�Ü�Ô$âÔ�Î(ѹå�Ü�ÑãÖ�à{Ï(à|å�Ü�Ö�à{Ò�ß÷ï�V�Ð�ÑãÖ�Û�Î(ÑGè9æ¶Ñ�Ò�Ô Ü.Ö�ÒUÒ�ÚIåNÎ�Ñ�Õ�åQÎ�Ï�Ö�à|îAÎ�èÜ�Ú{Ú�Ú�Ü�ß�ç�Ð�Ü�ç�ΧÜ�å�å�Ñ�Ò]Ü�Ï7Û�ÎGÕ�Ñ�Î@^]Ð�à{Ñ�Î&à{ßUîLÜAÕãà{î�ÎAè)ÕkÖ�Ñ�Î�ßUÐ�Ò�Ð�ÕÑ�Î(ô®Ñ�à·Ö�Î�Õ�Ö�Ò�ç�Î(Ö4Ñ�Î�Õ�Ð�Ú|Ö�Õ�ïFbPßeÏ(Ò�ß]Ö�Ñ7Ü�ÕãÖ�èAÒ�Ð�ѵÜ�å�å�Ñ�Ò]Ü�Ï7Û�Ï(Ü�ßå�Ñ�Î�Ï(à{Õ�Î(Ú{ØÇÏ7Û�ÎGÏ7ëÇå�Ñ�Ò�åQÎ(Ñ�Ö�à{Î�Õ¹ô®à|Ö�Û�ÒAУÖ�Ñ�Î@^]Ð�à{Ñ�à{ß�ç³Ö�Û�ÎeÐ�ÕãÎÒ�æqÜEÕ�åQÎ�Ï=à|õNÏ�Ú{Ü�ß�ç�ÐNÜ�ç�Î�Ò�ѹà�Ó£Î(ÒAÚ|ÒAç�سæ¶Ò�ÑYÏ=Ò£Ó£Î�Ï(Ò�ß�ÕãÖ�Ñ�Ð�Ï�âÖ�à{Ò�ß�ï bPß­ÒAÐ�Ñ�ÒAå�à{ß�à|ÒAß÷è�ß�ÒzÒ�ß�ÎEô4ÒAÐ�Ú{Ó­Ð�ÕãγÜ�Ö�ÒUÒAÚiÖ�Û�ÜjÖÑ�Î@^]Ð�à{Ñ�ÎGÓ�Ö�Û�Î)ßUÐ�Ô�×NÎ�ÑiÒ�æ÷Ü�ß�ß�Ò�Ö7ÜjÖ�à|ÒAß�ÕIß�Î(ÎGÓ£Î�Ó�×UØ�Ü1ÖkØUåNÎ

Õ�Ø£ÕkÖ�Î(Ô>s�Ï�Ü�Ú{Ú|à{ß�ç�Ü$Ö�ÒUÒ�Ú�ÜÉÝkÖkØUåNÎ�Õ�Ø£ÕkÖ�Î(Ô�é$à{Õ)ß�Ò�Ö�Î�ß�Ò�Ð�ç�ÛÖ�Ò�Ô�Ü�ë�ÎYÕ�Ð�Ï7ÛEÒjîAÎ(Ñ�Û�Î�ÜAÓ�Õ4å�Ü�Ú�ÜjÖ7Ü�×�Ú{Î�ï

ü ß�Î�æ¶ÎGÜjÖ�Ð�Ñ�γÖ�ÒÂß�Ò�Ö�Î�Ü�×NÒAУÖeÕãÖ�Ñ�Ò�ß�çAÎ(Ñ$ÖkØUåNΧÏ7Û�ÎGÏ7ë]âà{ß�çÉà�Õ�Ö�Û�Ü�Ö.à·ÖEà{Õ.ÜÀÔ�à�ÕkÖ7Ü�ë�γÖ�ÒÉÖ�Û�à{ß�ëbÖ�Û�Ü�Ö�Ö�Û�Î&Î�Ñ�Ñ�Ò�Ñ7Õæ¶ÒAÐ�ß�Óbà|ßbÖ�Û�à{Õ�åNÜ�åQÎ(Ñ�ô4ÒAÐ�Ú�ÓÞÛ�ÜLîAÎE×QÎ(Î�ß�Ý�ÕãÒAÚ|îAÎ�Ó�éÇà·æ úå�Ñ�ÒjîUà�Ó£Î�Ó�Ó£ØUß�Ü�Ô$à�Ï®×QÒ�Ð�ßNÓ�Õ4Ï7Û�Î�Ï7ë£Õ(ï�ÍUÐ�Ï7Û.Ï7Û�Î�Ï7ë£Õ�ôµÒ�Ð�Ú�ÓÏ�Ü�Ð�Õ�ÎqܹÑ�Ð�ß]Ö�à|Ô�ÎqÎ)U�Ï=Î�å£Ö�à{Ò�ß�ô®Û�Î�ß�îUà{Ò�Ú�ÜjÖ�Î�Óvï��'U�Ï=Î�å£Ö�à{Ò�ßNÕÜ�Ñ�ÎYÔ�à�ÕãÛNÜ�ß�Ó£Ú{Î�Ó§ß�Ò�Ö�Ò�Ñ�à|ÒAÐ�ÕãÚ{ØeÒ�æ¤Ö�Î�ß÷ï�ð Ï(Ò�Ô�Ô�Ò�ß&Î�U£Ü�Ô$âå�Ú|Î�à{Õ Î)U�Ï=Î�å£Ö�à{Ò�ßÇÛ�Ü�ß�Ó�Ú|à{ß�ç�Ï=Ò£Ó£Î�Ö�Û�ÜjÖYÓ£ÒUÎ�Õ ß�Ò�Ö Ñ�Î(î�Î�Ñ�Õ�ÎÜ�Ú|Ú�ß�Î�Ï=ÎGÕ�Õ�Ü�Ñ�Ø�Î)�9Î�Ï=Ö�Õ ø Î�ï ç�ï{è÷Ñ�Î�Ú|ÎGÜ�Õ�à|ß�çEÚ{Ò£Ï7ëUÕ�è÷Ð�ß�å�à|ß�ß�à|ß�çÔ�Î�Ô$ÒAÑ�ØAèYÓ£Î�Ï(Ñ�Î�Ô$Î�ß]Ö�à{ß�çÙÑ�Î(æ¶Î(Ñ�Î(ß�Ï(ÎÉÏ(Ò�Ð�ß]Ö7Õ û èYô®Û�à{Ï7Û Ü�ÖÖ�Û�ιî�Î�Ñ�Ø.Ú{Î�ÜAÕkÖ)Ü�Ú|Ú{Òjô)ÕqÓ£Î(ß�à�Ü�Ú|â�Ò�æ¤âPÕãÎ�Ñ�îUà�Ï=ιÜjÖãÖ7Ü�Ï7ë£Õ�ï

V�à{ß�Ü�Ú{Ú|ØAè9ô4Î�ÛNÜLî�Î�ß�Ò�Ö�à�Ï=ÎGÓ�Ö�Û�Ü�Ö¹Ü�ß&Î)UUÖ�Î�ß�Õ�à|ÒAߣâ�×NÜ�Õ�Î�ÓÜ�å�å�Ñ�ÒAÜAÏ7Û±æ¶Ò�ѧÏ7Û�Î�Ï7ëUà|ß�çíÛNÜ�Õ§Õ�Î(îAÎ(Ñ7Ü�ÚYÜ�Ó£îjÜ�ßAÖ7Ü�çAÎ�Õ�Òjî�Î�ÑÜ�ß�ß�Ò�Ö�ÜjÖ�à|ÒAߣâ�×�Ü�Õ�Î�Ó�Ü�å�å�Ñ�Ò]Ü�Ï7Û�ÎGÕ ø Õ�Ð�Ï7ÛeÜAÕ�ÖkØUåNÎ1ÕãØ£ÕãÖ�Î�Ô�Õ û ïü ß�Î�Ü�Ó£îjÜ�ßAÖ7Ü�çAεà�ÕiÖ�Û�Ü�ÖiÎ)UUÖ�Î�ß�Õ�à|ÒAß�ÕiÕ�à|çAß�à|õNÏ(Ü�ßAÖ�Ú|Ø$Ñ�Î�Ó£Ð�Ï(ÎÖ�Û�Î.Ï=Ò]ÕkÖ�Ò�æqÕ�åQÎ�Ï=à|õNÏ�ÜjÖ�à{Ò�ßÀ×UØzÏ(Ò�Ô�×�à|ß�à{ß�ç§Ü�ß�Ü�Ú{Ø£Õãà�Õ¹ô®à·Ö�ÛÜAÓÙÛ�Ò£Ï&ëUß�Òjô®Ú{Î�Ó£çAÎ�ï ð+çAÒUÒUÓÙÎ�U�Ü�Ô�å�Ú{ΧÒ�æ¹Ö�Û�à{ÕEà{ÕeÖ�Û�Îæ¶Ð�ß�Ï�Ö�à|ÒAßÇà{ßÀÍUÎGÏ�Ö�à{Ò�ß k�ÐNÕãÎGÓ&Ö�Ò³à{ß�Ó£à�Ï(ÜjÖ�Î�à|æµÜEÑ�Ò�УÖ�à|ß�Î�à{ÕÜzÕãØ£ÕãÖ�Î�Ô Ï(Ü�Ú{Ú�ï ])ÜjÖ�Û�Î(Ñ�Ö�Û�Ü�ßÞÛ�ÜLîUà{ß�ç§Ö�ÒÀÜ�ß�ß�Ò�Ö�ÜjÖ�ÎEÎ�î]âÎ�Ñ�Ø­Õ�Ø£ÕkÖ�Î(Ô Ï�Ü�Ú{Ú®å�Ü�Ñ7Ü�Ô�Î=Ö�Î(Ñ$à|ßíÖ�Û�Î&ÕãÒAÐ�Ñ�Ï(γÏ(ңӣΠø åNÒ]ÕkâÕ�à{×�Ú|ØíÔ�à{Õ�Õ�à|ß�çbÕãÒAÔ$Î û è)ÒAß�ÎÇÏ�Ü�ß-Õ�à|Ô�å�Ú{Øíô®Ñ�à|Ö�ÎÀÜÉõZU£Î�ÓUâÏ(ÒAÕãÖ�Î)UUÖ�Î(ß�Õ�à|ÒAß�Ö�Û�Ü�Ö1Ü�УÖ�ÒAÔ�Ü�Ö�à�Ï(Ü�Ú|Ú{ØEÔ�Ü�Ñ�ë£Õ)Ü�Ú|Ú�Ñ�ÒAУÖ�à{ß�ÎGÕ×QÎ(çAà|ß�ß�à|ß�ç.ô®à·Ö�Û-Ý�b��+b éeÜAÕ)Û�ÜLîUà{ß�ç�Ö�Ü�à|ß]Ö�ÎGÓ§Ü�Ñ�ç�Ð�Ô$Î�ß]Ö�Õ�ïð ÕãÎGÏ=Ò�ßNÓÂÜ�Ó£îjÜ�ß]Ö7Ü�ç�Îeà{Õ�Ö�Û�Ü�Ö�Î)UUÖ�Î(ß�Õ�à|ÒAß�Õ�Ï�Ü�ßÂÐ�Õ�ÎEÏ(Ð�ÕãâÖ�Ò�Ô�à{á(Î�ÓÉÜ�ß�Ü�Ú{Ø£Õãà�Õ¹Ö�Ò&×QÒ�Ö�ÛÂà|ß�æ¶Î(Ñ�Ï7Û�Î�Ï7ëUà|ß�ç&à|ߣæ¶ÒAÑ�Ô�Ü�Ö�à{Ò�ßæ¶Ñ�Ò�Ô Ï=ңӣΠÜ�ß�Ó�Ö�Ò�Ï�ÜjÖ�Ï7Û�ô®Û�Î(ß�Ö�Û�Î(Ø$Ô�à{Õ�Õ4Ï7Û�Î�Ï7ë]â�Ñ�Î(Ú�ÜjÖ�Î�ÓÜAÏ�Ö�à|ÒAß�Õ(ï � ÜAÕ�Õ�à|îAÎ Ü�ß�ß�Ò�Ö7ÜjÖ�à|ÒAß�ÕqÏ(Ü�ß&Ó£Ò�ß�Î�à·Ö�Û�Î(ÑGï

� !# ���2)'�6����( ��

ó Û�à{ÕCå�Ü�åQÎ(ÑXÛ�ÜAÕXÕ�Û�Òjô®ß+Û�Òjô Ö�Ò ÐNÕãÎ#å�Ñ�Ò�ç�Ñ7Ü�Ô�Ô�Î(Ñ�âô®Ñ�à|ÖãÖ�Î�ßÇÏ=ÒAÔ�å�à|Ú{Î(ѹÎ�U]Ö�Î(ß�Õ�à{Ò�ß�Õ�Ö�Ò³Ï(ÜjÖ7Ï7ÛÇÕ�Î�Ï=Ð�Ñ�à|ÖkØ�Î(Ñ�Ñ�ÒAÑ�Õ�ïöÀÎqÛ�ÜLî�Îqå�Ñ�Î�Õ�Î(ß]Ö�Î�Ó�ÒAß�ήÏ7Û�Î�Ï7ëAÎ(Ñ�Ü�ßNÓ�Õ�ë�Î(Ö�Ï7Û�ÎGÓ�ÖkôµÒ Ò�Ö�Û£âÎ�Ñ�Õ�ï ó Û�ÎÉÎ)UUÖ�Î�ß�Õ�à|ÒAß�Õ�ô4ÒAÑ�ëAÎ�Ó-ô4Î�Ú|Ú�à{ßXå�Ñ�ÜAÏ�Ö�à{Ï(Î�ï öÀÎæ¶ÒAÐ�ß�Ó�ôµÎ(Ú{ÚQÒjî�Î(Ñ ����� Î�Ñ�Ñ�Ò�Ñ7Õ�à{ß�ÖkôµÒ�Õ�ØUÕãÖ�Î�Ô�Õ ø ��à|ßUÐ U.Ü�ß�Ó[ ÍP û èjÕ�Ò�Ô�εà|ß$Ï=Ò�Ñ�ÎiëAÎ(Ñ�ß�Î(ÚUÏ=Ò£Ó£ÎAï �¹Î�Ñ�ß�Î�ÚAà{Ô�å�Ú{Î(Ô�Î(ß]Ö�Î�Ñ�ÕÛNÜLî�Î�åNÜjÖ�Ï7Û�Î�Ó.ÒjîAÎ(Ñ y � Ò�æ�Ö�Û�ιÎ(Ñ�Ñ�ÒAÑ�Õià|ß³Ñ�Î�Õ�åNÒAß�ÕãÎ�Ö�Ò�Ò�Ð�ÑÑ�Î(åQÒ�Ñ�Ö�Õ�ï

ü Ð�Ñ�Ô�ÒAÕãÖ�Ó£Î(îAÎ(Ú{Ò�åQÎ�ÓÞÏ7Û�Î�Ï7ë�Î�Ñ�èIÖ�Û�Î�Ñ�Ü�ß�ç�γÏ7Û�Î�Ï7ëAÎ(ÑGèÐNÕãÎGÓ§ß�ÒjîAÎ(Ú�Ö�Î�Ï7Û�ß�àL^]Ð�ÎGÕ1×NÒ�Ö�ÛzÖ�Ò³Î(Ú{à|Ô�à{ß�ÜjÖ�Î�Ö�Û�Î�ß�Î(ÎGÓ&Ö�ÒÕ�åQÎ�Ï=à|æ¶Ø±Õ�Ò�Ô�ÎzÏ7Û�ÎGÏ7ëUà|ß�çÞå�Ñ�ÒAåNÎ�ÑãÖ�à|ÎGÕEÜ�ß�ÓÙÖ�ÒíÓ£Î(Ö�ÎGÏ�Ö�à|ߣâÏ(Ò�Ô�å�Ú{Î=Ö�Î ø ÒAÑ�à{ß�Ï=ÒAÑ�Ñ�Î�Ï=Ö û Õ�åNÎGÏ=à|õNÏ(Ü�Ö�à{Ò�ß�Õ�ï®özÎ�Ð�Õ�Î�Ó&Õ�Ð�Ï7Ûà{ߣæ¶Î�Ñ�Î�ß�Ï=έà{ß Ö�Û�Ñ�Î�έå�Ú�Ü�Ï(Î�Õ�ï V�à{Ñ7ÕkÖGè�Ö�ÒCÓ£Î=Ö�Î�Ï�ÖÀÔ�à{Õ�ÕãÎGÓÕ�Ò�Ð�Ñ�Ï(Î�Õ�è�Ö�Û�ΧÑ�Ü�ß�ç�ΧÏ7Û�Î�Ï7ë�Î�Ñ�Ú|ÒUÒ�ëAÎ�Óbæ¶Ò�ÑeÒ�Ö�Û�Î(Ñ.Ð�Õ�Î�Õ.Ò�æà{ß�å�Ð�Ö)Ö�Û�Ü�Ö Õ�Ð�ç�çAÎ�ÕãÖ®Ö�Û�Ü�Ö�à·Ö1Ï=Ò�Ô�ÎGÕqæ¶Ñ�ÒAÔ Ö�Û�Î�Ð�Õ�Î(ÑGïµÍ£Î�Ï�âÒAß�Óvè�Ö�ÒYõ�ßNÓ�Ô$à�Õ�ÕãÎGÓ�Õãà{ß�ë£Õ(è�Ö�Û�Î Ï7Û�Î�Ï7ëAÎ(Ñ�Ú{Ò]ÒAë£ÕIæ¶Ò�Ñ4å�Ú{ÜAÏ=ÎGÕô®Û�Î(Ñ�ΧÓ�ÜjÖ7ÜÂÏ=Ò�Ô�ÎGÕ�æ¶Ñ�ÒAÔsÜÉëUß�Òjô®ß÷èqÐ�ßNÕ�Ü�æ¶Î§ÕãÒAÐ�Ñ�Ï(Î�èµà{ÕÏ7Û�Î�Ï7ë�ÎGÓvè£×�Ð£Ö à{Õ)Ö�Û�Î�ß&ß�Ò�Ö�ÐNÕãÎGÓeæ¶ÒAÑ�Ü�ßUØ]Ö�Û�à|ß�ç�æ¶ÒAÑ)ô®Û�à�Ï7ÛÖ�Û�Î Ï7Û�Î�Ï7ë�Î�ÑiëUß�Òjô)Õ�Ö�Ò�Ú{ÒUÒ�ë9ï ó Û�à{Ñ�ÓvèAÖ�Ò�Ó£Î(Ö�Î(Ñ�Ô�à|ß�Î�ô®Û�Ü�ÖÓ�ÜjÖ�Ü�Ï=ÒAÔ$ÎGÕ�æ¶Ñ�Ò�Ô Ü�ß.à|ßNÏ=Ò�Ô�à{ß�ç ø Ñ�Ü�Ö�Û�Î�ÑiÖ�Û�Ü�ßEÒ�УÖ�ç�ÒAà|ß�ç ûß�Î=ÖkôµÒ�Ñ�ë$åNÜ�Ï7ë�Î(Ö4Ö�Û�Î�Ï7Û�ÎGÏ7ë�Î(ѵÐ�Õ�Î�Õ®Ï(ÒUÓ�Î1Ü�ß�Ü�Ú{Ø£Õãà�ÕµÑ�Ü�Ö�Û�Î�ÑÖ�Û�Ü�ßÂÕ�åNÎGÏ=à|õNÏ(Ü�Ö�à{Ò�ß�Õ�ï³özÎ.Û�Ò�åQÎ�Ö�Ò§Î�UUÖ�Î(ßNÓÀÖ�Û�ÎeÏ7Û�Î�Ï7ë�Î�Ñ

Page 17: Using Programmer-Written Compiler Extensions to Catch Security

Ö�Ò&Ü�Ú|Ú{Òjô Î�ÜAÕãاÜAÓ�Ó£à|Ö�à{Ò�ßÀÒ�æµÜ�Ñ�×�à·Ö�Ñ�Ü�Ñ�Ø&Ó�Ü�Ö�ÜeÖkØ]åQÎ�Õ ø ÕãÐNÏ7ÛÜ�ÕYÕãÖ�Ñ�à{ß�çAÕ û Ö�Û�ÜjÖ�Ñ�Î@^]Ð�à{Ñ�Î�å�Ñ�Î�Ï(Ò�ß�Ó�à·Ö�à|ÒAß�Õ1×NÎ�Ô�Î=Ö�×QÎ=æ¶ÒAÑ�ÎÐ�Õ�Î�ïöÀÎ�×QÎ(Ú{à|Î�î�ÎYÖ�Û�Î�Ð�Õ�Î�Ò�æiÕãØ£ÕãÖ�Î�Ô�âPÕ�åNÎGÏ=à|õNÏ�ÕãÖ�ÜjÖ�à{Ï�Ü�ß�Ü�Ú·â

Ø£Õãà�Õ1à{ÕYÜEç�Î�ß�Î(Ñ7Ü�ÚIÜ�å�å�Ñ�Ò]Ü�Ï7Û&Ö�ÒeõNß�Ó£à{ß�ç&ÕãÎGÏ=Ð�Ñ�à·ÖkØ&Î�Ñ�Ñ�Ò�Ñ7Õ�ïðXå�Ñ7Ü�Ï�Ö�à{Ï�Ü�Ú9Ü�Ó£îjÜ�ßAÖ7Ü�çAÎ)à{Õ4Ö�Û�ÜjÖ®à|ÖqÜ�Ú|Ú{Òjô)Õ4Ü�УÖ�ÒAÔ�ÜjÖ�à�Ï Î(ߣâæ¶Ò�Ñ7Ï=Î�Ô�Î(ß]Ö®Ò�æIÒ�×�Õ�Ï=Ð�Ñ�Î�èUåQÒUÒ�Ñ�Ú|Ø.Ð�ß�Ó£Î(Ñ7ÕãÖ�ÒUÒ£ÓeÑ�Ð�Ú{Î�Õ�ï

Ê�� � 2o~E�� ]�ê'=�)Ì&�$�����$�I�

öÀÎEÖ�Û�Ü�ß�ë ú ÒAÕãÖ�ÜzÍ�Ü�å�Ð�ß]Ö�á�Ü�ëUà�Õ�æ¶Ò�Ñ�ç�Î(ÖãÖ�à{ß�çÀÐ�Õ�ÕkÖ7Ü�Ñ�Ö�ÎGÓô®à|Ö�Û [ ÍP Ü�ß�ÓÞæ¶Ò�Ñ�îAÎ(Ñ�à·æ¶ØUà{ß�çÀÒ�Ð�Ñ�Ñ�Î�Õ�Ð�Ú|Ö�Õ�ïböÀÎ�Ö�Û�Ü�ß�ëð)Ú�Ü�ß ú Ò�U.æ¶ÒAÑ)Î)U£å�Ú�Ü�à{ß�à{ß�ç�Û�ÒjôCÏ�Ü�å�Ü�×�à{Ú|à|ÖkØEÏ7Û�ÎGÏ7ë£ÕµÜ��QÎGÏ�ÖÖ�Û�εÑ�Î�Õ�Ð�Ú|Ö�ÕIÒ�æNÒ�Ð�ÑIÏ7Û�Î�Ï7ë�Î�Ñ�Ü�ß�Ó�æ¶Ò�Ñ�åQÒ�à{ßAÖ�à|ß�ç ÒAУÖIÖ�Û�ήåQÒ�âÖ�Î�ß]Ö�à�Ü�Ú�Î�Ñ�Ñ�Ò�Ñ7Õ1ô®à·Ö�Û­Ü�Ñ�à·Ö�Û�Ô�Î=Ö�à�Ï�Òjî�Î�ÑCXNÒjôYï.ð)ß� ú Û�ÒAÐà{Ô$å�Ú|Î�Ô$Î�ß]Ö�Î�ÓÞÔ�Ð�Ï7ÛbÒ�æ®Ö�Û�Î ùzú ÕãØ£ÕãÖ�Î�ÔQ� Õ�ÕãÐ�å�åNÒAÑãÖ�æ¶Ò�Ñà{ßAÖ�Î(Ñ�â�å�Ñ�Ò£Ï=ÎGÓ£Ð�Ñ7Ü�Ú9Ü�ß�Ü�Ú|Ø£Õ�à{Õ�s�ÍUÎ=Ö�Û C�Ü�Ú{Ú{Î(Ô/Ó�à{Ó³ßUÐ�Ô�Î(Ñ�Ò�Ð�ÕÕ�ØUÕãÖ�Î�Ô<õZU£Î�Õ�ï�<1Ò£Ó£Ô�Ü�Ñ [ Ü�Ï7ë­Ü�ß�ÓíÍ£Î=Ö�Û C Ü�Ú{Ú|Î�Ô çAÜLîAÎîjÜ�Ú{Ð�Ü�×�Ú|ήå�Ñ�ÒUÒ�æ¤â�Ñ�ÎGÜ�Ó£à{ß�ç¹Ü�Õ�Õãà�ÕãÖ�Ü�ßNÏ=Î�ï�ö à|Ú�Õ�Ò�ß&C�Õ�à{Î(Û�� Õ�Î)UUâÖ�Î�ß�Õ�à|îAÎ�èLÚ{ÜAÕkÖIÔ�à|ßUУÖ�Î4Ï(Ò�Ô�Ô�Î(ß]Ö�Õ�ç�Ñ�Î�Ü�Ö�Ú{Ø Û�Î�Ú|åQÎ�Ó�Ö�Û�εå�Ñ�Î=âÕ�Î(ß]Ö�Ü�Ö�à{Ò�ß÷ï

} ������������2®�)�

������������ ��������������������! "��#$�%������'&(�)!*%�+,�.-"��#.-"����/0 $��#��.1���2 "��34��5634�7�����. 83�97/���#;:� "9�/� $��<=1�?>@�BADCFEHG$I"IFJ�KML�N�O;EQPRTS IVUWO RYX L R I�C$L[Z R K\E�L[Z7]_^_E�LHP�I�C"I�L[G$IVE`Lba[EHE7] OcZ`L[JVd�] NE7eC�K RTS�f O�P�E�C RTS I,^_E�L�O R C$g�G R KhE�LiZ�L[J�djL�Z7] k�O"KMODEQPDl�k`O R I f O"���:! "�43Y�Hm�m7n�

� oH�p��Dqr�41F��97:s�`���t��u+,��3�/7�� H2vu����#$ �����/xwT9� � $��#��y#.97��z����-"��97��1p���t{�3��8��#�#��.1F1F��1�|^_E f�} g R KML�N;O"k�O R I f O$��:��`/7��1�H~������H�7o��%)!:� "����/��Hm�m7��

� ~W�'�B ��%qu*�1F�%���� +V��Y����#�*�1��(�`���x+V ���)!����34�W�(p��1Q-$�`-"��#������3�5!���. ywM9` 8{����!����/��!5!���`<=�4#�:� "9�/� $��<=<=����/��. F "9` "1�l[EQP R\� Z`C"IH��ADCFZG R K\G�I�Z�L�J��_� } I�C�K�I�L�G$I���~7��������� �7�7����n��o��o����7�!

� �`�pvu�� "��1��Y�7�`��1�#��! "��1$�01F#H�` F5� �[�H�`1Q-"1� 9` "/� ���� "1F97���`3#�97<=<�*����4#��`-"��97��  ���/�W-"����¡:��` $�`<=�.-"�. ¢:��`1F1F�H�£-"9��-�5 6 .7- #�"�!�� 9` ��-�5�6 1��7-<8 #�"�!�� ��3�3�9H¤¥1c�.¦!:[971F����/p9� 9W��. F§�9H¤¥����/'�` "����-F $�W F5i �� "����3¨<=��<=9` F5��!��:� "��3©o����!�7

� �H�=��©+,�Hª��4���p�����b��(���������! "��#$�%8�Y��wT9� "#�����/«����/7��z�3�����.3:� "9`-"9�#�973�1¬����3�9H¤¬z�3������3¨1F9�w­-®¤D�` "�7(>@��A¬CQEHG�I"IFJ�KML�N�O¯EQP RTS Id�^©°±l X`² A_³�dj´|µ�¶¶Ub^_E`LHPHI�CFI�L[G$IyE�LxA¬CQE"N�CFZ f�f KML�N³©Z�L�N�g�Z�N�Ic·�I�O"K4N�L�Z�L�J X$f�} ]4I f I�L R Z R KhE�L��[�7*����¯o`�7�!��

� �W�= �7+,9� H������j9����.�%���`����)¨�)��`/7���[�vu3��H�`������1F1D#$����#$ ��4��/9�w�1Q-F "����/�<��`����:�*�3­�W-"��97��1p���2v?:! "97/� $�`<=1����4�;����-"��/7�. ������3�5!1F�41�V>®�¹¸ RTS8X L R I�C$L[Z R K\E�L[Z7]_l�k f0} E�O"KMg f E`L;l R Z R K\GdjL[Z7] k`O"KMO'ºhl!d0l»H��:���/���1c�Hm`�`�!o��Wo����7*�3�5¼o��7���7

� �H����Y�_�4�!9� F�(�r�uY½0����/73������%�uv�r�i9�1F1F�4���u½�( 0��1F1��u��Y½�)!¾` "����1F�����D�`������_¿©9�w­-"�7t������97+,9�<=�����\�p�� "97<À-®5!:[�-"����9` F58-"9�5��H�W Vo��7���i#�9��!�7�. "1F��97�x-"9�9�3h�>@�Á^_E�L�PHI�C"I�L�G$I IFG"E�CQJBEQP�AcÃ_A_³ÅÄÄ��|a S Ibµ!Æ RTS d�^©°Çl X`² Ar³©d�´,el X`² d�^¥a�l�k f0} E�O"KMg f E`L8ADC�KML�G.K } ]4I�O�EQP0A¬CQE"N�CFZ f�f KML�N

³©Z�L�N�g�ZHN�I�O"È�l[Z�L6djL R E�L�KhE�È«a¨IF�Z�O"�c:���/7�.1x���������¯ ��.¤É 9` " ¨��  É �¨�Hm7m�m!

� n`�V+V�Y��/�3��. H�!q�vu����3�w®�!�¯�vu��97*��������=)¨�½,�`3�34�.<¼¨vu���.#� �z�4��/=1Q5!1Q-"��<Ê "*�3���1¥*�1F����/'1Q5!1Q-"��<'z�1F:[��#���{�#7�!:! "97/� $�`<=<=�. Fz¤¬ "��-F-"�.��#�9�<=:���3��. D��¦!-"�.��1F��97��1�%>@�pA¬CQEHG$I$IFJ�KTL�N�OcE®P�à } I�C�eZ R KML�N�l�k�O R I f O=·�I�O"K4N�LsZ�L�J X$f�} ]4I f I�L R Z R KhE�LÁº$Ãul!· X »H�)!��:!-"��<V�[�. ¥o��7���!

� m`�V+V¼�Y��/�3��. H�;+Vivu�����%��)¨p½,�`343���<¼�x��ivu��97*%�;�����q�Yvu����3�w®iqu*�/�1��`1V�!�����4����-¯�[�����H����9� H����/������� $��3D�`:�z:� "9�`#���-"9¼����wM�� F "�4��/y�. F "9� "1����;1Q5!1Q-"��<=1c#�9��!�7p>®��ADCFE�eG�I"IFJ�KML�N�O'E®P RTS I¯�DK4N S�R I"I�L RTS d�^©°Ël�k f0} E�O"KMg f E`Ltà } eI�CFZ R KML�Npl�k`O R I f O�ADC�KTL[G.K } ]4I�O"�[Ì0#.-"97�[�. �o`�7���7

�����`�=Í�¨Îc�4#.�H��3���1��©���ª©�`<=:�����/!������i�.�������� ��` H�%v�%�¼�������!�v� Ï��ª%9�:[��1�����¯ª�97����/`-"���. H�������Ð��c>@ F¤¥����±�j1F:[��#.-Fz9� "������-"�H�x:! "97/� $�`<=<=����/��>@���Dg�CFE } IFZ�L2^_E�LHP�I�C"I�L[G$IiE`LÃ¥ÑMÒWIFG R e$ÃuC�K�I�L R IFJ,ADCFE"N�CFZ fVf KTL�N�ºT�,^¬Ã,Ã_A(»H�`�7*������Hm�m��

�����.�V+V�ª©�` "9�#$���.343��¹�����2+�0�Y������1�Ó)�-$�W-"��#H��3�3�5B�!�.-"��#.-"����/34�� �.3�5V��*!�¨�. _9`�7�. F§�9H¤��!*�3����. $�`����3���-"����1�¨>@�tÔ�l��r´ XQÕ l[I.eG.g!C$K R k¯l�k f0} E`O$KTg f È0ÖiZ�O S KML�N R E�L�Ȩ·�×�^r×4��j*�/�*�1Q-ro����!��

���HoW�'��%��5��. "10�����«qj�ª%��1F 9W�[c�Ð����#.����-F $��3������H�8<=9�����3©wT9� �4�!wM9` "<��`-"��97�«§�9H¤Ð#�97��-F "9�3h�>@�;ADCFEHG$I"IFJ�KML�N�O=EQP RTS I'l�K4�7eR I$I�L RTS d�^©°Ól�k f�} E�O"KMg f E`L�à } I�CQZ R KML�N�l�k`O R I f ODA¬C$KML�eG.K } ]4I�O"��:���/7�.1¯�Ho�mH�����o��%Ì0#.-"9��[�. ¯�Hm�m��

����~`�'�797�«�Y�4��#�*�1�j���� "1F97���`3�#�9�<=<V*�����#H�`-"��97��D+,�.���3�97:��4��/p���*��¨�� '9W��. F§�9W¤Ø#�����#$ �. ��4�¹�Y�0�(w\�`1Q-¼�h�y��. "1F��9��¹9`w09`w�_���Y{�¦���4��Ì0#.-"9��[�. 0o��7���7

���.���=)¨`)!�W����/��7�7��Wqu*! F "9W¤¥1��Í�H ���3�1F97�%����`)�97���`3��7�W F "9��������¿0 �¬[�j���!�. "1F97��Y�Y $�`1F�. H�u�Á��5�����<=��#,���`-$�� $�`#��c�!�.-"��#.z-"9� jwM9� 0<V*�3�-"��-"�! "�H�7�!�H��:! "97/� $�`<=<=����/�¬d�^©°±a�CFZ�L�O�ZG�eR KhE�L�O�E`L�^_E f0} g R I�C¯l�k`O R I f O"���H�!�\����� ~�m!��������7�Y�Hm�m��

���H�W�V����)�-F "97<Ð������) É ��<=�����\�¿Y5!:[�W)�-$�W-"�¥�,:� "97/` $��<=<=����/3­�`��/�*���/���#.97��#.��:�-�wM9` V�������`��#�����/y1F9`wT-@¤¬�` "�� "��3��4�����43���-®5�X �r�_��a�CQZ�L�O�ZG R KhE`L�O�E�L8l[E®P R\� Z�C"I��¬L�N�KML¨I"I�C$KML�N��%�7���W���H��W�����¨��`�!*��` F58�Hm�n7��

�����`�'��DÏ��4�./�!�j�! ¿0Dqu3�9�#�����¿0uÎc9�����9!�j������Í�D�i#WÍ� $��¤c>Q¿¥)!�!�_�s1Q-$�`-"��#,��*�3����� $������3���-®5=1F#��������. DwT9� jvt�`���pv¬ÙcÙ#�9����7Ú>@�¢djL�L�g�Z7]�^_E f�} g R I�C�l¨IFG.g�C�K R ksd }} ] K\G$Z R KhE�L�O^_E�LHPHI�CFI�L[G$I���o`�7�7��

���H�W�V+V¬���`/7���� y�����s+V¬+,�H�`�%Ø>®��-F "*�1F��97�2�!�.-"��#.-"��97�2���4�1Q-$�`-"��#,�`����3�5!1F��1�©>@� X �r�_�tl�k f0} E�O"KMg f E�Lil[I"G.g�C$K R k=Z`L[JA¬C$KMÛ`ZG.k`�¨o`�7�!��

����n`�V+V,���`/7���. H�=��c��971Q-"�. H�=�¥¯q_ "�.¤D�. H�=�����Ü�¯¯���� �.�%�¡{� "1Q-=1Q-"��:b-"9W¤D�` $�!1=��*!-"97<��`-"�����!�.-"��#.-"��97�¹9�w0��*!�¨�. 9`�7�. F "*����!*�3����. $�`����3���-"����1�Á>®��a S I8µ�¶¶¶«´�I R\� E�CFݹZ`L[J·cKMO R C$KhÑ.g R I"J�l�k`O R I f O¥l¨IFG.g�C�K R kp^_E�L�PHI�C"I�L�G�IH×[l[Z�L'·,K�IhNE�È^©d,�������! "*��` F5io`�7�7��

����m`�'ª©�` F F5����`343r�����x����������3rª_�)!#$��¤¬�` F-"��yADCFE"N�CQZ fVf KML�NA�I�C�] uÌ�Þ �j����3�3�5��%��m7m!��