<?xml version="1.0" encoding="ANSI_X3.4-1968" standalone="no"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=ANSI_X3.4-1968" /><title>sk_chk_filter</title><meta name="generator" content="DocBook XSL Stylesheets V1.76.1" /><link rel="home" href="index.html" title="Linux Networking and Network Devices APIs" /><link rel="up" href="ch01s03.html" title="Socket Filter" /><link rel="prev" href="API-sk-run-filter.html" title="sk_run_filter" /><link rel="next" href="API-sk-filter-release-rcu.html" title="sk_filter_release_rcu" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span>sk_chk_filter</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-sk-run-filter.html">Prev</a> </td><th width="60%" align="center">Socket Filter</th><td width="20%" align="right"> <a accesskey="n" href="API-sk-filter-release-rcu.html">Next</a></td></tr></table><hr /></div><div class="refentry" title="sk_chk_filter"><a id="API-sk-chk-filter"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sk_chk_filter — verify socket filter code </p></div><div class="refsynopsisdiv" title="Synopsis"><h2>Synopsis</h2><div class="funcsynopsis"><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><tr><td><code class="funcdef">int <strong>fsfuncsk_chk_filter </strong>(</code></td><td>struct sock_filter * <var class="pdparam">filter</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">flen</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1" title="Arguments"><a id="id2902870"></a><h2>Arguments</h2><div class="variablelist"><dl><dt><span class="term"><em class="parameter"><code>filter</code></em></span></dt><dd><p> filter to verify </p></dd><dt><span class="term"><em class="parameter"><code>flen</code></em></span></dt><dd><p> length of filter </p></dd></dl></div></div><div class="refsect1" title="Description"><a id="id2902914"></a><h2>Description</h2><p> Check the user's filter code. If we let some ugly filter code slip through kaboom! The filter must contain no references or jumps that are out of range, no illegal instructions, and must end with a RET instruction. </p><p> All jumps are forward as they are not signed. </p><p> Returns 0 if the rule set is legal or -EINVAL if not. </p></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-sk-run-filter.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="ch01s03.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-sk-filter-release-rcu.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span>sk_run_filter</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span>sk_filter_release_rcu</span></td></tr></table></div></body></html>