Skip to content

Commit

Permalink
Merge branch 'master' into s1
Browse files Browse the repository at this point in the history
  • Loading branch information
akashrawal committed Jul 20, 2017
2 parents 2824d95 + 8dd1c5e commit 5f9a439
Show file tree
Hide file tree
Showing 818 changed files with 21,150 additions and 190 deletions.
4 changes: 3 additions & 1 deletion configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,9 @@ if test -n "$WARN_CFLAGS"; then
wget_WORD_REMOVE([WARN_CFLAGS], [$WARN_CFLAGS], [$nw])

# add more flags as you like
WARN_CFLAGS="$WARN_CFLAGS -fdiagnostics-color=always"
if test $GCC_VERSION -ge 5; then
WARN_CFLAGS="$WARN_CFLAGS -fdiagnostics-color=always"
fi
if test "$cross_compiling" = yes; then
WARN_CFLAGS="$WARN_CFLAGS -Wno-format"
fi
Expand Down
2 changes: 2 additions & 0 deletions fuzz/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ WGET_TESTS = \
libwget_base64_fuzzer$(EXEEXT) \
libwget_cookie_fuzzer$(EXEEXT) \
libwget_css_url_fuzzer$(EXEEXT) \
libwget_html_url_fuzzer$(EXEEXT) \
libwget_iri_fuzzer$(EXEEXT) \
libwget_metalink_parse_fuzzer$(EXEEXT) \
libwget_robots_parse_fuzzer$(EXEEXT) \
Expand All @@ -28,6 +29,7 @@ libwget_bar_fuzzer_SOURCES = libwget_bar_fuzzer.c main.c fuzzer.h
libwget_base64_fuzzer_SOURCES = libwget_base64_fuzzer.c main.c fuzzer.h
libwget_cookie_fuzzer_SOURCES = libwget_cookie_fuzzer.c main.c fuzzer.h
libwget_css_url_fuzzer_SOURCES = libwget_css_url_fuzzer.c main.c fuzzer.h
libwget_html_url_fuzzer_SOURCES = libwget_html_url_fuzzer.c main.c fuzzer.h
libwget_iri_fuzzer_SOURCES = libwget_iri_fuzzer.c main.c fuzzer.h
libwget_metalink_parse_fuzzer_SOURCES = libwget_metalink_parse_fuzzer.c main.c fuzzer.h
libwget_robots_parse_fuzzer_SOURCES = libwget_robots_parse_fuzzer.c main.c fuzzer.h
Expand Down
49 changes: 49 additions & 0 deletions fuzz/libwget_html_url_fuzzer.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
/*
* Copyright(c) 2017 Free Software Foundation, Inc.
*
* This file is part of libwget.
*
* Libwget is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Libwget is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with libwget. If not, see <https://www.gnu.org/licenses/>.
*/

#include <config.h>

#include <assert.h>
#include <stdio.h>
#include <stdint.h>
#include <stdlib.h>
#include <string.h>

#include "wget.h"
#include "fuzzer.h"

int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
{
if (size > 10000) // same as max_len = 10000 in .options file
return 0;

char *in = (char *) malloc(size + 2);
assert(in != NULL);

// 0 terminate
memcpy(in, data, size);
in[size] = in[size + 1] = 0;

WGET_HTML_PARSED_RESULT *res = wget_html_get_urls_inline(in, NULL, NULL);
wget_html_free_urls_inline(&res);

free(in);

return 0;
}
22 changes: 22 additions & 0 deletions fuzz/libwget_html_url_fuzzer.dict
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
"<base"
"<link"
"<meta"
"action"
"href"
"src"
"srcset"
"style"
"follow"
"nofollow"
"all"
"none"
"robots="
"name=\"robots\""
"content="
"http-equiv=\"Content-Type\""
"charset="
"style="
"rel=\"shortcut icon\""
"rel=\"stylesheet\""
"rel=\"preload\""
"srcset="
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
CCCCCCCCCCCCCCCCCCCCCCC...<style>...........<scripHt>..................*3....�..............<meta==================CCCCCCCCCCCCCCCCCCCCCCC<td>CCCCCCCu��
<sou<sou������<menuite>ou������<menuite>oC<td>CCCC<CCu��
<sou<sou�����>...�<menuite>omeur>(<sce>u<ce>(<sou������<men>
<<men>
<!u?o<fu<ce!rm>u<ce>on>u<ce>(<sou>(������<mtton>u<ce>(<sou�<ce>(������������<m������
<sou��
<s�
<style>�����������������������������������
<sou��
<sou�CCCCCC...<style>...........<scripHt>..................*3....�..............<meta==================CCCCCCCCCCCCCCCCCCCCCCC<td>CCCCCCCu��
<sou<sou������<menuite>ou������<menuite>oC<td>CCCC<CCu��
<sou<sou�����>...�<menuite>omeur>(<sce>u<ce>(<sou������<men>
<<men>
<!u?o<fu<ce!rm>u<ce>on>u<ce>(<sou>(������<mtton>u<ce>(<sou�<ce>(������������<m������
<sou��
<s�
<style>�����������������������������������
<sou��
<sou�
<?!ou<����<men>
<?!ou<f!rm>u<�!rm������������
<sou��
<sou�CC<td>CCCCCCCu��
<p><sou<so��
<h3>*
<soCCC�CCCCCC===========
<style>............................<style>...........<scripHt>..................*3....�..............<meta==================CCCCCCCCCCCCCCCCCCCCCCC<td>CCCCCCCu��
<sou<sou������<menuite>ou������<menuite>oC<td>CCCC<CCu��
<sou<sou�����>...�<menuite>omeur>(<sce>u<ce>(<sou���
<?!ou<����<men>
<?!ou<f!rm>u<�!rm������������
<sou��
<sou�CC<td>CCCCCCCu��
<p><sou<so��
<h3>*
<soCCC�CCCCCC==========CCCCCCCCCCC...<style>...........<scripHt>..................*3....�..............<meta==================CCCCCCCCCCCCCCCCCCCCCCC<td>CCCCCCCu��
<sou<sou������<menuite>ou������<menuite>oC<td>CCCC<CCu��
<sou<sou�����>...�<menuite>omeur>(<sce>u<ce>(<sou������<men>
<<men>
<!u?o<fu<ce!rm>u<ce>on>u<ce>(<sou>(������<mtton>u<ce>(<sou�<ce>(������������<m������
<sou��
<s�
<style>�����������������������������������
<sou��
<sou�
<?!ou<����<men>
<?!ou<f!rm>u<�!rm������������
<sou��
<sou�CC<td>CCCCCCCu��
<p><sou<so��
<h3>*
<soCCC�CCCCCC===========
<style>............................<style>...........<scripHt>..................*3....�..............<meta==================CCCCCCCCCCCCCCCCCCCCCCC<td>CCCCCCCu��
<sou<sou������<menuite>ou������<menuite>oC<td>CCCC<CCu��
<sou<sou�����>...�<menuite>omeur>(<sce>u<ce>(<sou������<men>
<<men>
<!u?o<fu<ce!rm>u<ce>on>u<ce>(<sou>(������<mtton>u<ce>(<sou�<ce>(������������<m������
<sou��
<s�
<style>�����������������������������������
<sou��
<sou�
<?!ou<����<men>
<?!ou<f!rm>u<�!rm������������
<sou��
<sou�
<?!ou<����<men>
<?!ou<f!rm>u<ce>(��������������������<mi>����������������������<t.................................!rm>u<?!ou<f!rm>u<sou���<f!r���������=
<style>............................<style>...........<scripHt>..................*3....�..............<meta==================CCCCCCCCCCCCCCCCCCCCCCC<td>CCCCCCCu��
<sou<sou������<menuite>ou������<menuite>oC<td>CCCC<CCu��
<sou<sou�����>...�<menuite>omeur>(<sce>u<ce>(<sou������<men>
<<men>
<!u?o<fu<ce!rm>u<ce>on>u<ce>(<sou>(������<mtton>u<ce>(<sou�<ce>(������������<m������
<sou��
<s�
<style>�����������������������������������
<sou��
<sou�
<?!ou<����<men>
<?!ou<f!rm>u<�!rm������������
<sou��
<sou�
<?!ou<����<men>
<?!ou<f!rm>u<ce>(��������������������<mi>����������������������<t.................................!rm>u<?!ou<f!rm>u<sou���<f!r�����������������������r>����
<su
>�
<so
<sou��u<s<sourcemenuit>em<
<sou<sousource>(������<menuite>omur<sce>
<����� �����������������������<m������
<sou��
<s����s<imag
<sty)<f!r==========================================�����=
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
�Ì���Óm>��
<sou<sou������<
<sou
<s!ou��
<sou<sou����<===========================================================<data====<datalist>===sou������<menuit>em<s/urcemenuit��<>ou����===============================<data====<datalist>===sou������<menuit>em<s/urcemenuit��<>ou������<
<sou
<s!ou��
<sou<sou����<s(u���������<
<sou
<s!ou��
<sou<sou����<=====================================================================================================================<
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@

<!-<hgroup>>s!ou��
<h3>c
<soCCC�CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC<td>CCCCCCCu��
<sou<so��
<h3>c
<soCCC�CCCCCC===CCCCCCCCCCCCCCCCCCCCCCCCCCCCC<td>CCCCCCCu��
<sou<so��
<h3>c
<soCCC�CCCCCC============?�=======<pre>===CCCCCCCCCC!ou��
<h3>c
<soCCC�CCCCC�CCCCCCCCCCCCCCCCCC
<!-<hgroup>>s!ou��
<h3>c
<soCCC�CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC<td>CCCCCCCu��
<sou<so��
<h3>c
<soCCC�CCCCCC===CCCCCCCCCCCCCCCCCCCCCCCCCCCCC<td>CCCCCCCu��
<sou<so��
<h3>c
<soCCC�CCCCCC============?�=======<pre>===CCCCCCCCCC!ou��
<h3>c
<soCCC�CCCCC�CCCCCCCCCCCCCCCCCCCCCCCC<td>CCCCCCCu��
<sou<so��
<h3>c
<soCCC�CCCCCC============?�=======<pre=>==CCCCCCCCCCCCCCCCCCCCCCC<td>CCCCCCCu��
<sou<sou������<menuite>ou������<menuite>oC<td>CCCC<Cu��
<sou<sou������<me=========?�=======<pre>===CCCCCCCCCC!ou��
<h3>c
<soCCC�CCCCC�C<?CCCCCCCCCCCCCCCCCCCCCCC<td>CCCCCCCu��
<sou<so��
<h3>c
<soCCC�CCCCCC============?�=======<pre=>==CCCCCCCCCCCCCCCCCCCCCCC<td>CCCCCCCu��
<sou<sou������<menuite>ou������<menuite>oC<td>CCCC<CCu��
<sou<sou������<meCCCCCCCCCCCCC<td>CCCCCCCuCCCCCCCCCCCCCCCCCCCCCCCCC<td>CCCCCCCu��
<sou<so��
<h3>c
<soCCC�CCCCCC===CCCCCCCCCCCCCCCCCCCCCCCCCCCCC<td>CCCCCCCu��
<sou<so��
<h3>c
<soCCC�CCCCCC============?�=======<pre>===CCCCCCCCCC!ou��
<h3>c
<soCCC�CCCCC�CCCCCCCCCCCCCCCCCCCCCCCC<td>CCCCCCCu��
<sou<so��
<h3>c
<soCCC�CCCCCC============?�=======<pre=>==CCCCCCCCCCCCCCCCCCCCCCC<td>CCCCCCCu��
<sou<sou������<menuite>ou������<menuite>oC<td>CCCC<Cu��
<sou<sou������<me=========?�=======<pre>===CCCCCCCCCC!ou��
<h3>c
<soCCC�CCCCC�C<?CCCCCCCCCCCCCCCCCCCCCCC<td>CCCCCCCu��
<sou<so��
<h3>c
<soCCC�CCCCCC============?�=======<pre=>==CCCCCCCCCCCCCCCCCCCCCCC<td>CCCCCCCu��
<sou<sou������<menuite>ou������<menuite>oC<td>CCCC<CCu��
<sou<sou������<meCCCCCCCCCCCCC<td>CCCCCCCu��
<sou<sou������<menuite>ou������<menuite>oC<td>CCCC<CCu��
<sou<sou������<menuite>omeur>(<sce>CCCCCC<td>CCCCCCCu��
<sou<so��
<h3>c
<soCCC�CCCCCC============?�=======<pre=>==CCCCCCCCCCCCCCCCCCCCCCC<td>CCCCCCCu��
<sou<sou������<menuite>ou������<menuite>oC<td>CCCC<Cu��
<sou<sou������<me=========?�=======<pre>===CCCCCCCCCC!ou��
<h3>c
<soCCC�CCCCC�C<?CCCCCCCCCCCCCCCCCCCCCCC<td>CCCCCCCu��
<sou<so��
<h3>c
<soCCC�CCCCCC============?�=======<pre=>==CCCCCCCCCCCCCCCCCCCCCCC<td>CCCCCCCu��
<sou<sou������<menuite>ou������<menuite>oC<td>CCCC<CCu��
<sou<sou������<meCCCCCCCCCCCCC<td>CCCCCCCuCCCCCCCCCCCCCCCCCCCCCCCCC<td>CCCCCCCu��
<sou<so��
<h3>c
<soCCC�CCCCCC===CCCCCCCCCCCCCCCCCCCCCCCCCCCCC<td>CCCCCCCu��
<sou<so��
<h3>c
<soCCC�CCCCCC============?�C�CCCCCC============?�=======<pre=>==CCCCCCCCCCCCCCCCCCCCCCC<td>CCCCCCCu��
<sou<sou������<menuite>ou������<menuite>oC<td>CCCC<CCu��
<sou<sou������<meCCCCCCCCCCCCC<td>CCCCCCCu��
<sou<sou������<menuite>ou������<menuite>oC<td>CCCC<CCu��
<sou<sou������<menuite>omeur>(<sce>CCCCCC<td>CCCCCCCu��
<sou<so��
<h3>c
<soCCC�CCCCCC============?�=======<pre=>==CCCCCCCCCCCCCCCCCCCCCCC<td>CCCCCCCu��
<sou<sou������<menuite>ou������<menuite>oC<td>CCCC<Cu��
<sou<sou������<me=========?�=======<pre>===CCCCCCCCCC!ou��
<h3>c
<soCCC�CCCCC�C<?CCCCCCCCCCCCCCCCCCCCCCC<td>CCCCCCCu��
<sou<s=======<pre>===CCCCCCCCCC!ou��
<h3>c
<soCCC�CCCCC�CCCCCCCCCCCCCCCCCCCCCCCC<td>CCCCCCCu��
<sou<so��
<h3>c
<soCCC�CCCCCC============?�=======<pre=>==CCCCCCCCCCCCCCCCCCCCCCC<td>CCCCCCCu��
<sou<sou������<menuite>ou������<menuite>oC<td>CCCC<Cu��
<sou<sou������<me=========?�=======<pre>===CCCCCCCCCC!ou��
<h3>c
<soCCC�CCCCC�C<?CCCCCCCCCCCCCCCCCCCCCCC<td>CCCCCCCu��
<sou<so��
<h3>c
<soCCC�CCCCCC============?�=======<pre=>==CCCCCCCCCCCCCCCCCCCCCCC<td>CCCCCCCu��
<sou<sou������<menuite>ou������<menuite>oC<td>CCCC<CCu��
<sou<sou������<meCCCCCCCCCCCCC<td>CCCCCCCu��
<sou<sou������<menuite>ou������<menuite>oC<td>CCCC<CCu��
<sou<sou������<menuite>omeur>(<sce>(
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@

<menu>t><sty)<f!r==============================================================================================================m><button>u<ce>(<sou������<men>
<!u?o<f!rm>u<ce>on>u<ce>(<sou������<men>
<!u?o<f!rm>u
<style>����
<!rm>u<!--<sou������<m?!����<�<m?<!--->ou������<m?!����<m?!ou<f!rm>u<<mou<f!rm���<m?!ou<f!rm>u<<mou<f!rm>u<<m<style>h3>ce>u<<m<st�����=libdict=libwgu9sou������=libwgu<sou������<wgu<sou�
<!rm>u<!--<sou������<m?!����<�<m?<!--<sou������<m?!����<m?!ou<f!rm>u<<mou<f!rm���<m?!ou<f!rm>u<<mou<f!rm>u<<m<style>h3>ce>u<<m<style>h!ou<f!rm>u<<mou<f!rm>u<<m<style>h3>ce>u<<m<style>h3>ce>(ict=libwgu9sou������=libwgu<sou������<wgu<sou����dictou������=libwgu<sou������<wgu<sou������<sour==============m><button>u<ce>(<sou������<men>
<!u?o<f!rm>u<ce>on>u<ce>(<sou������<men>
<!u?o<f!rm>u
<style>����
<!rm>u<!--<sou������<m?!����<�<m?<!--->ou������<m?!����<m?!ou<f!rm>u<<mou<f!rm���<m?!ou<f!rm>u<<mou<f!rm>u<<m<style>h3>ce>u<<m<style>h!ou<f!rm>u<<mou<f!rm>u<<m<style>h3>ce>u<<m<style>h3>ce>(libw<sou��QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ(QQQQ���������������������������<������������������������������������������������������������������QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ���������<tr>����
<su
>�
<so
<sou��u<s<sourcemenuit>em<
<sou<sousource>(������<menuite>omu<sou������<bwgu<sou������<wgu<sou������<source><sou>(rce>(��<source><sour
dict=libwgu<sou������=libdict=libwgu9sou������=libwgu<sou������<wgu<sou�r<sce>
<����� �����������������������<m������
<sou��
<s����s<image>ourou����� �����������������������<menuitem>������soou<s���������s<image>�����<tr>�������������������������<mi>����������������������<tr>�����������������������
<!rm>u<!--<sou������<m?!����<��<mi>����������
<sou��
<sou<s���������soou<s���������s<image>ourou����� �����������������������<menuit�<me?<!--<s
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@

<sou�<''''''''''''''''''''''''<!-�
sou<sou������
<''''''''srcset=' �������������������������������������������������������������������..........<style>.....,...............................3..
<style>�������......,...................1y<.tl
s.e>.....................................3..........................<sty..e>l....................................�
<'''''''''*'''''''<!-�
<'srcset=<''''''''''%'''''<!-�
<''''''''''''''''''''''''''''''''''<!-�
<''''''''''''''''''''''''<!-�
sou<sou������
<''''''''srcset='�������������������������������������������������������������������..........<style>.....,...............................3..
<style>�������......,...................1y<.tl
s.e>.....................................3..........................<sty..e>l.................................................3..
<style>�������......,...................1y<.tl
s.e>.....................................3............3..
<style>�������......,...................1y<.tl
s.e>.....................................3..........................<sty..e>l.................................................3..
<style>�������......,...................1y<.tl
s.e>.....................................3..................<style>.....,...............................3..
<style>�������......,...................1y<.tl
s.e>.......style=..............................3..........................<sty..e>l.................................................3..
<style>�������......,...................1y<.tl
s.e>................................srcset=.........................<sty..e>l..............<style>.....,...............................3..
<style>�������......,...................1y<.tl
s.e>.....................................3..........................<sty..e>l.................................................3..
<style>�������......,...................1y<.tl
s.e>................................srcset=.........................<sty..e>l........����<!-�
<'<''''''''''%'''''<!-�
<''''''.......................''''''''''''...'.3
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@

<script>r?!ou<f<script>r?!ou<f!rm>u<sou������<men>
<?!ou<f!rm>u<ce>(<sou������<men>
<?!om>u<?!ou<f!rm>u<sou������<men>
<?!ou<f!rm>u<ce>(<sou����!rm>u<sou������<men>
<?!ou<f!rm>u<ce>(<sou������<men>
<?!om>u<?!ou<f!rm>u<sou������<men>
<?!ou<f!rm>u<ce>(<sou������<men>
<?!ou<f!rm>u<ce>(
Loading

0 comments on commit 5f9a439

Please sign in to comment.