Backward-compatible constant-time exception-protected memory

Pradeep Varma, Rudrapatna K. Shyamasundar, Harshit J. Shah
<span title="">2009</span> <i title="ACM Press"> <a target="_blank" rel="noopener" href="https://fatcat.wiki/container/dj7g645z6zfl5lut4iwy5walyu" style="color: black;">Proceedings of the 7th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering on European software engineering conference and foundations of software engineering symposium - ESEC/FSE &#39;09</a> </i> &nbsp;
We present a novel, table-free technique for detecting all temporal and spatial memory access errors (e.g. dangling pointers, out-ofbounds check, etc.) in programs supporting general pointers. Our approach is the first technique to provide such error checking using only constant-time operations. The scheme relies on fat pointers, whose size is contained within standard scalar sizes (up to two words) so that atomic hardware support for operations upon the pointers is obtained along with
more &raquo; ... l casts in-between pointers and other scalars. Optimized compilation of code becomes possible since the scalarized-for-free encoded pointers get register allocated and manipulated. Backward compatibility is enabled by the scalar pointer sizes, with novel automatic support provided for encoding and decoding of fat pointers in place for interaction with unprotected code (e.g. library binaries). Implementation and benchmarks of the technique over several applications of the memory-intensive Olden suite indicate that the average time overhead of our method is about half the time cost of an unprotected application's execution (< 55%). This performance is over twice faster than the nearest prior work.
<span class="external-identifiers"> <a target="_blank" rel="external noopener noreferrer" href="https://doi.org/10.1145/1595696.1595710">doi:10.1145/1595696.1595710</a> <a target="_blank" rel="external noopener" href="https://dblp.org/rec/conf/sigsoft/VarmaSS09.html">dblp:conf/sigsoft/VarmaSS09</a> <a target="_blank" rel="external noopener" href="https://fatcat.wiki/release/get6dwo35zdyxgbw2ze2kv3t5m">fatcat:get6dwo35zdyxgbw2ze2kv3t5m</a> </span>
<a target="_blank" rel="noopener" href="https://web.archive.org/web/20190217134618/https://static.aminer.org/pdf/20170130/pdfs/sigsoft/zll1xt04h5xzc7vkejqsdsqtvmefgmpb.pdf" title="fulltext PDF download" data-goatcounter-click="serp-fulltext" data-goatcounter-title="serp-fulltext"> <button class="ui simple right pointing dropdown compact black labeled icon button serp-button"> <i class="icon ia-icon"></i> Web Archive [PDF] <div class="menu fulltext-thumbnail"> <img src="https://blobs.fatcat.wiki/thumbnail/pdf/b5/80/b580c1d6ce75de73ecb280df412bdafafc4841d1.180px.jpg" alt="fulltext thumbnail" loading="lazy"> </div> </button> </a> <a target="_blank" rel="external noopener noreferrer" href="https://doi.org/10.1145/1595696.1595710"> <button class="ui left aligned compact blue labeled icon button serp-button"> <i class="external alternate icon"></i> acm.org </button> </a>