libpsl/lcov/usr/oms/src/libpsl/fuzz/libpsl_fuzzer.c.gcov.html

176 lines
12 KiB
HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>LCOV - libpsl-fuzz - /usr/oms/src/libpsl/fuzz/libpsl_fuzzer.c</title>
<link rel="stylesheet" type="text/css" href="../../../../../gcov.css">
</head>
<body>
<table width="100%" border=0 cellspacing=0 cellpadding=0>
<tr><td class="title">LCOV - code coverage report</td></tr>
<tr><td class="ruler"><img src="../../../../../glass.png" width=3 height=3 alt=""></td></tr>
<tr>
<td width="100%">
<table cellpadding=1 border=0 width="100%">
<tr>
<td width="10%" class="headerItem">Current view:</td>
<td width="35%" class="headerValue"><a href="../../../../../index.html">top level</a> - <a href="index.html">usr/oms/src/libpsl/fuzz</a> - libpsl_fuzzer.c<span style="font-size: 80%;"> (source / <a href="libpsl_fuzzer.c.func-sort-c.html">functions</a>)</span></td>
<td width="5%"></td>
<td width="15%"></td>
<td width="10%" class="headerCovTableHead">Hit</td>
<td width="10%" class="headerCovTableHead">Total</td>
<td width="15%" class="headerCovTableHead">Coverage</td>
</tr>
<tr>
<td class="headerItem">Test:</td>
<td class="headerValue">libpsl-fuzz</td>
<td></td>
<td class="headerItem">Lines:</td>
<td class="headerCovTableEntry">32</td>
<td class="headerCovTableEntry">32</td>
<td class="headerCovTableEntryHi">100.0 %</td>
</tr>
<tr>
<td class="headerItem">Date:</td>
<td class="headerValue">2017-07-20 15:57:20</td>
<td></td>
<td class="headerItem">Functions:</td>
<td class="headerCovTableEntry">1</td>
<td class="headerCovTableEntry">1</td>
<td class="headerCovTableEntryHi">100.0 %</td>
</tr>
<tr>
<td class="headerItem">Legend:</td>
<td class="headerValueLeg"> Lines:
<span class="coverLegendCov">hit</span>
<span class="coverLegendNoCov">not hit</span>
</td>
<td></td>
</tr>
<tr><td><img src="../../../../../glass.png" width=3 height=3 alt=""></td></tr>
</table>
</td>
</tr>
<tr><td class="ruler"><img src="../../../../../glass.png" width=3 height=3 alt=""></td></tr>
</table>
<table cellpadding=0 cellspacing=0 border=0>
<tr>
<td><br></td>
</tr>
<tr>
<td>
<pre class="sourceHeading"> Line data Source code</pre>
<pre class="source">
<a name="1"><span class="lineNum"> 1 </span> : /*</a>
<span class="lineNum"> 2 </span> : * Copyright(c) 2017 Tim Ruehsen
<span class="lineNum"> 3 </span> : *
<span class="lineNum"> 4 </span> : * Permission is hereby granted, free of charge, to any person obtaining a
<span class="lineNum"> 5 </span> : * copy of this software and associated documentation files (the &quot;Software&quot;),
<span class="lineNum"> 6 </span> : * to deal in the Software without restriction, including without limitation
<span class="lineNum"> 7 </span> : * the rights to use, copy, modify, merge, publish, distribute, sublicense,
<span class="lineNum"> 8 </span> : * and/or sell copies of the Software, and to permit persons to whom the
<span class="lineNum"> 9 </span> : * Software is furnished to do so, subject to the following conditions:
<span class="lineNum"> 10 </span> : *
<span class="lineNum"> 11 </span> : * The above copyright notice and this permission notice shall be included in
<span class="lineNum"> 12 </span> : * all copies or substantial portions of the Software.
<span class="lineNum"> 13 </span> : *
<span class="lineNum"> 14 </span> : * THE SOFTWARE IS PROVIDED &quot;AS IS&quot;, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
<span class="lineNum"> 15 </span> : * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
<span class="lineNum"> 16 </span> : * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
<span class="lineNum"> 17 </span> : * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
<span class="lineNum"> 18 </span> : * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
<span class="lineNum"> 19 </span> : * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
<span class="lineNum"> 20 </span> : * DEALINGS IN THE SOFTWARE.
<span class="lineNum"> 21 </span> : *
<span class="lineNum"> 22 </span> : * This file is part of libpsl.
<span class="lineNum"> 23 </span> : */
<span class="lineNum"> 24 </span> :
<span class="lineNum"> 25 </span> : #include &lt;config.h&gt;
<span class="lineNum"> 26 </span> :
<span class="lineNum"> 27 </span> : #include &lt;assert.h&gt; /* assert */
<span class="lineNum"> 28 </span> : #include &lt;stdint.h&gt; /* uint8_t */
<span class="lineNum"> 29 </span> : #include &lt;stdlib.h&gt; /* malloc, free */
<span class="lineNum"> 30 </span> : #include &lt;string.h&gt; /* memcpy */
<span class="lineNum"> 31 </span> :
<span class="lineNum"> 32 </span> : #if defined(WITH_LIBICU)
<span class="lineNum"> 33 </span> : #include &lt;unicode/uclean.h&gt;
<span class="lineNum"> 34 </span> : #endif
<span class="lineNum"> 35 </span> :
<span class="lineNum"> 36 </span> : #include &quot;libpsl.h&quot;
<a name="37"><span class="lineNum"> 37 </span> : #include &quot;fuzzer.h&quot;</a>
<span class="lineNum"> 38 </span> :
<span class="lineNum"> 39 </span><span class="lineCov"> 37442 : int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)</span>
<span class="lineNum"> 40 </span> : {
<span class="lineNum"> 41 </span> : static int first_run = 1;
<span class="lineNum"> 42 </span> : psl_ctx_t *psl;
<span class="lineNum"> 43 </span><span class="lineCov"> 37442 : char *domain = (char *) malloc(size + 1), *res;</span>
<span class="lineNum"> 44 </span> : int rc;
<span class="lineNum"> 45 </span> :
<span class="lineNum"> 46 </span><span class="lineCov"> 37442 : assert(domain != NULL);</span>
<span class="lineNum"> 47 </span> :
<span class="lineNum"> 48 </span> : /* 0 terminate */
<span class="lineNum"> 49 </span><span class="lineCov"> 37442 : memcpy(domain, data, size);</span>
<span class="lineNum"> 50 </span><span class="lineCov"> 37442 : domain[size] = 0;</span>
<span class="lineNum"> 51 </span> :
<span class="lineNum"> 52 </span><span class="lineCov"> 37442 : psl = (psl_ctx_t *) psl_builtin();</span>
<span class="lineNum"> 53 </span> :
<span class="lineNum"> 54 </span><span class="lineCov"> 37442 : psl_is_public_suffix(psl, domain);</span>
<span class="lineNum"> 55 </span><span class="lineCov"> 37442 : psl_is_public_suffix2(psl, domain, PSL_TYPE_PRIVATE);</span>
<span class="lineNum"> 56 </span><span class="lineCov"> 37442 : psl_is_public_suffix2(psl, domain, PSL_TYPE_ICANN);</span>
<span class="lineNum"> 57 </span><span class="lineCov"> 37442 : psl_unregistrable_domain(psl, domain);</span>
<span class="lineNum"> 58 </span><span class="lineCov"> 37442 : psl_registrable_domain(psl, domain);</span>
<span class="lineNum"> 59 </span> :
<span class="lineNum"> 60 </span><span class="lineCov"> 37442 : psl_is_cookie_domain_acceptable(psl, &quot;&quot;, NULL);</span>
<span class="lineNum"> 61 </span><span class="lineCov"> 37442 : psl_is_cookie_domain_acceptable(psl, &quot;a.b.c.e.com&quot;, domain);</span>
<span class="lineNum"> 62 </span> :
<span class="lineNum"> 63 </span><span class="lineCov"> 37442 : if ((rc = psl_str_to_utf8lower(domain, &quot;utf-8&quot;, NULL, &amp;res)) == PSL_SUCCESS)</span>
<span class="lineNum"> 64 </span><span class="lineCov"> 37442 : free(res);</span>
<span class="lineNum"> 65 </span><span class="lineCov"> 37442 : if ((rc = psl_str_to_utf8lower(domain, &quot;iso-8859-1&quot;, NULL, &amp;res)) == PSL_SUCCESS)</span>
<span class="lineNum"> 66 </span><span class="lineCov"> 37442 : free(res);</span>
<span class="lineNum"> 67 </span><span class="lineCov"> 37442 : if ((rc = psl_str_to_utf8lower(domain, NULL, NULL, &amp;res)) == PSL_SUCCESS)</span>
<span class="lineNum"> 68 </span><span class="lineCov"> 20458 : free(res);</span>
<span class="lineNum"> 69 </span> :
<span class="lineNum"> 70 </span><span class="lineCov"> 37442 : psl_free(psl);</span>
<span class="lineNum"> 71 </span> :
<span class="lineNum"> 72 </span><span class="lineCov"> 37442 : if (first_run) {</span>
<span class="lineNum"> 73 </span><span class="lineCov"> 193 : psl_is_public_suffix(NULL, domain);</span>
<span class="lineNum"> 74 </span><span class="lineCov"> 193 : psl_check_version_number(1);</span>
<span class="lineNum"> 75 </span><span class="lineCov"> 193 : psl_get_version();</span>
<span class="lineNum"> 76 </span><span class="lineCov"> 193 : psl_dist_filename();</span>
<span class="lineNum"> 77 </span><span class="lineCov"> 193 : psl_builtin_outdated();</span>
<span class="lineNum"> 78 </span><span class="lineCov"> 193 : psl_builtin_filename();</span>
<span class="lineNum"> 79 </span><span class="lineCov"> 193 : psl_builtin_sha1sum();</span>
<span class="lineNum"> 80 </span><span class="lineCov"> 193 : psl_builtin_file_time();</span>
<span class="lineNum"> 81 </span><span class="lineCov"> 193 : first_run = 0;</span>
<span class="lineNum"> 82 </span> : }
<span class="lineNum"> 83 </span> :
<span class="lineNum"> 84 </span><span class="lineCov"> 37442 : free(domain);</span>
<span class="lineNum"> 85 </span> :
<span class="lineNum"> 86 </span> : #if defined(WITH_LIBICU)
<span class="lineNum"> 87 </span> : u_cleanup(); /* free all library internal memory to avoid memory leaks being reported */
<span class="lineNum"> 88 </span> : #endif
<span class="lineNum"> 89 </span> :
<span class="lineNum"> 90 </span><span class="lineCov"> 37442 : return 0;</span>
<span class="lineNum"> 91 </span> : }
</pre>
</td>
</tr>
</table>
<br>
<table width="100%" border=0 cellspacing=0 cellpadding=0>
<tr><td class="ruler"><img src="../../../../../glass.png" width=3 height=3 alt=""></td></tr>
<tr><td class="versionInfo">Generated by: <a href="http://ltp.sourceforge.net/coverage/lcov.php" target="_parent">LCOV version 1.13</a></td></tr>
</table>
<br>
</body>
</html>