Compare commits

..

No commits in common. "master" and "libpsl-0.21.0" have entirely different histories.

274 changed files with 1402 additions and 70451 deletions

1
.github/FUNDING.yml vendored
View File

@ -1 +0,0 @@
github: rockdaboot

View File

@ -1,53 +0,0 @@
name: "CodeQL"
on:
push:
branches: [ "master" ]
pull_request:
branches: [ "master" ]
schedule:
- cron: "49 4 * * 0"
jobs:
analyze:
name: Analyze
runs-on: ubuntu-latest
permissions:
actions: read
contents: read
security-events: write
strategy:
fail-fast: false
matrix:
language: [ python, cpp ]
steps:
- name: Checkout
uses: actions/checkout@v3
with:
submodules: recursive
- name: Install Packages (cpp)
if: ${{ matrix.language == 'cpp' }}
run: |
sudo apt-get update
sudo apt-get install --yes lzip autopoint
- name: Configure (cpp)
if: ${{ matrix.language == 'cpp' }}
run: ./autogen.sh && ./configure --disable-gtk-doc
- name: Initialize CodeQL
uses: github/codeql-action/init@v2
with:
languages: ${{ matrix.language }}
queries: +security-and-quality
- name: Autobuild
uses: github/codeql-action/autobuild@v2
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v2
with:
category: "/language:${{ matrix.language }}"

View File

@ -1,5 +1,5 @@
sudo: false
dist: xenial
dist: trusty
language: c

View File

@ -1,4 +1,4 @@
Copyright (C) 2014-2022 Tim Rühsen
Copyright (C) 2014-2018 Tim Rühsen
Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the "Software"),

View File

@ -1,4 +1,4 @@
Copyright (C) 2014-2022 Tim Rühsen
Copyright (C) 2014-2015 Tim Rühsen
Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the "Software"),

View File

@ -22,7 +22,7 @@ ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS}
pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = libpsl.pc
EXTRA_DIST = build-aux/config.rpath LICENSE meson.build meson_options.txt
EXTRA_DIST = build-aux/config.rpath LICENSE
dist-hook:
mkdir -p $(distdir)/list/tests
cp -p $(PSL_FILE) $(distdir)/list

View File

@ -1,35 +0,0 @@
USE_CLIB2=YES
ifeq ($(USE_CLIB2), YES)
LIBC=clib2
else
LIBC=newlib
endif
all: build
init:
# git submodule update --init
sh ./autogen.sh
autoreconf --install --force --symlink
build: init
CC="ppc-amigaos-gcc" CFLAGS="-mcrt=${LIBC} -fPIC" CXXFLAGS="-mcrt=${LIBC} -fPIC" LDFlags="-mcrt=${LIBC}" LIBS="-lpthread -athread=native" ./configure --host=ppc-amigaos --enable-shared=no --enable-builtin --disable-runtime && \
make -j$(shell nproc)
clean:
@make -f Makefile clean
@rm -rf autom4te.cache .deps
@rm config.log config.status configure libtool Makefile Makefile.in *.m4
release:
@mkdir -p release/local/common/include
@mkdir -p release/local/clib2/lib
# @mkdir -p release/local/newlib/lib
@make -f Makefile.os4 USE_CLIB2=YES
@cp ./src/.libs/libpsl.a ./src/.libs/libpsl.lai ./src/libpsl.la release/local/clib2/lib/
@cp ./include/libpsl.h release/local/common/include/
# @make -f Makefile.os4 clean
# @make -f Makefile.os4 USE_CLIB2=NO
# @cp ./src/.libs/libpsl.a ./src/.libs/libpsl.lai ./src/libpsl.la release/local/newlib/lib/
@lha -aeq libpsl.lha release/

21
NEWS
View File

@ -1,23 +1,4 @@
Copyright (C) 2014-2022 Tim Rühsen
26.12.2022 Release V0.21.2
* Increased internal label size
* Meson build improvements (needs meson >= 0.60.0)
* Autoconf build improvements
* Add instructions on how to build from tarball
* Add WSAStartup() for Windows psl tool and tests
* Bump gettext version to 0.19.3
* Fix stack buffer overflow WRITE 1 in domain_to_punycode()
(Relevant only when built without any IDNA library.)
* Fix undefined behavior in library code
* Ensures that calls to fopen() and stat() can handle largefiles
* Several minor (non-functional) changes
18.07.2020 Release V0.21.1
* Fixing a test due to recent changes in upstream PSL
* Meson build improvements
* Documentation cleanups
* Use semantic versioning for git tags
Copyright (C) 2014-2019 Tim Rühsen
16.04.2019 Release V0.21.0
* Add -b/--batch to 'psl' to suppress printing the domain

View File

@ -1,138 +0,0 @@
Building libpsl with Visual Studio
==================================
Building libpsl for Windows using Visual Studio 2008 or later is
supported with NMake (from release tarballs) or Meson (from GIT
checkouts). The following sections will cover building libpsl with
these methods.
Currently, for builtin/runtime public suffix list (PSL) IDNA handling,
only ICU is supported for Visual Studio builds.
Using NMake (from a release tarball)
===========
You will need a Python 2.7.x or later installation in order to
complete the build successfully.
You will need the ICU (International Components for Unicode)
libraries, headers and DLLs, to build libpsl, unless both
DISABLE_BUILTIN=1 and DISABLE_RUNTIME=1 are passed into the NMake
command line as listed below.
You can also buid libpsl with libiconv and gettext support, please
see the options below for enabling such support.
In a Visual Studio command prompt which matches your desired
configuration (x86/Win32, x64 etc.),
go to $(srcroot)\msvc, and issue the following command:
nmake /f Makefile.vc CFG=[debug|release]
A 'test' target is provided to build the test programs, while a
'clean' target is provided to remove all the compiled and generated
files for the build. An 'install' target is provided to copy the
build PSL DLL, .lib and executables, as well as the related PDB files
and libpsl header, into appropriate locations under PREFIX (please see
below).
This will build the libpsl DLL/LIB and the psl.exe utility in the
vsX\$(CFG)\$(ARCH) subdirectory, where X is the release version
of Visual Studio, such as 9 for 2008 and 16 for 2019, and ARCH is
Win32 for 32-bit builds and x64 for 64-bit (x86_64) builds.
A number of options can be passed into the NMake command, as follows.
Enable by setting each option to 1, unless otherwise indicated:
* PSL_FILE: Location of the PSL data file, which is retrieved from
https://publicsuffix.org/list/public_suffix_list.dat,
or some other custom location (not supported). Default
is in $(srcroot)\list\public_suffix_list.dat. This is
needed to generate the suffixes_dafsa.h header required
for the build, as well as the binary and ascii dafsa
files used for the test programs.
* TEST_PSL_FILE: Location of the test PSL file. Default is in
$(srcroot)\list\tests\tests.txt. This is
required for building and running the test
programs.
* STATIC: Set if building static versions of libpsl is desired.
* USE_LIBTOOL_DLLNAME: Set to use libtool-style DLL naming.
* DISABLE_RUNTIME: Do not use ICU to generate runtime PSL data.
* DISABLE_BUILTIN: Do not use ICU to generate builtin PSL data.
* USE_ICONV: Enable libiconv support, requires libiconv.
* USE_GETTEXT: Enable gettext support for displaying i18n messages.
Implies USE_ICONV, and requires gettext-runtime.
* PYTHON: Full path to a Python 2.7.x (or later) interpreter, if not
already in your PATH.
Required to generate DAFSA headers and data files that is
needed for the build, as well as generating pkg-config
files for NMake builds.
* PREFIX: Base installation path of the build. Note that any dependent
libraries are searched first from the include\ and lib\
sub-directories in PREFIX before searching in the paths
specified by %INCLUDE% and %LIB%. Default is
$(srcroot)\..\vsX\$(PLATFORM), where X is the release version
of Visual Studio, such as 9 for 2008 and 16 for 2019,
$(PLATFORM) is the target platform (Win32/x64) of the build.
Building libpsl with Meson
==========================
Building using Meson is now supported for Visual Studio builds from a
GIT checkout.
Besides the requirements listed in the NMake builds, you will also need
* Python 3.5.x or later
* Meson build system, use PIP to install from Python 3.5.x64
* Ninja build tool (if not involking Meson with --backend=
vs[2010|2015|2017|2019])
* A compatible PSL data file and a test PSL data file. You may
consider using the ones shipped with the latest libpsl release
tarball and place the PSL data file in $(srcroot)/list and the
test PSL data file in $(srcroot)/list/tests. You may also choose
to download the latest PSL data file from
https://publicsuffix.org/list/public_suffix_list.dat and place it
it $(srcroot)/list. Alternatively, specify
-Dpsl_file=<path_to_psl_data_file> and/or
-Dpsl_testfile=<path_to_test_psl_data_file> when invoking Meson.
Open a Visual Studio command prompt and enter an empty build directory.
Your Python interpreter, Meson executable script and Ninja (if used)
need to be in your PATH.
Any dependent libraries that are being used should have their headers
found in paths specified by %INCLUDE% and their .lib files in the
paths specified by %LIB%.
In the empty build directory, run the following:
meson <path_to_libpsl_git_checkout> --buildtype=... --prefix=<some_prefix> [--backend=vs[2010|2015|2017|2019]]
Please see the Meson documentation for the values accepted by
--buildtype. --backend=vsXXXX generates the corresponding versions
of the Visual Studio solution files to build libpsl, which
will elimnate the need to have the Ninja build tool installed.
When the Meson configuration completes, run 'ninja' or open the
generated solution files with Visual Studio and build the projects
to carry out the build. Run 'ninja test' or the test project to
test the build and run 'ninja install' or 'ninja install' to
install the build results.
If building with Visual Studio 2008, run the following after running
'ninja install' in your builddir:
for /r %f in (*.dll.manifest) do if exist $(prefix)\bin\%~nf mt /manifest %f /outputresource:$(prefix)\bin\%~nf;2
for /r %f in (*.exe.manifest) do if exist $(prefix)\bin\%~nf mt /manifest %f /outputresource:$(prefix)\bin\%~nf;1
So that the application manifests get properly embedded.

View File

@ -106,24 +106,6 @@ See the LICENSE file that accompanies this distribution for the full text of the
src/psl-make-dafsa and src/lookup_string_in_fixed_set.c are licensed under the term written in
src/LICENSE.chromium.
Building from tarball
---------------------
Choose a release from https://github.com/rockdaboot/libpsl/tags an download the tarball
named `libpsl-{version}.tar.*`. Unpack with `tar xf <filename>`, cd into the libsl* directory.
Build with
```
./configure
make
make check
```
Install with
```
sudo make install
```
Building from git
-----------------
@ -143,8 +125,7 @@ If you prefer a `meson` build
ninja -C builddir
ninja -C builddir test
There is also an unofficial MSVC nmake build configuration in `msvc/`. Please
see README.MSVC.md on building libpsl with Visual Studio via NMake or Meson.
There is also an unofficial MSVC nmake build configuration in `msvc/`.
Mailing List

View File

@ -1,4 +1,5 @@
AC_INIT([libpsl],[m4_normalize(m4_include(version.txt))],[tim.ruehsen@gmx.de],[libpsl],[https://github.com/rockdaboot/libpsl])
AC_INIT([libpsl], [0.21.0], [tim.ruehsen@gmx.de], [libpsl], [https://github.com/rockdaboot/libpsl])
AC_PREREQ([2.59])
AC_CONFIG_AUX_DIR([build-aux])
AM_INIT_AUTOMAKE([1.10 no-define foreign dist-lzip])
@ -14,8 +15,6 @@ LT_INIT([win32-dll])
AC_CONFIG_MACRO_DIR([m4])
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
AC_SYS_LARGEFILE
dnl Check that compiler understands inline
AC_C_INLINE
@ -35,8 +34,7 @@ AC_CONFIG_FILES([include/libpsl.h])
# Gettext
#
AM_GNU_GETTEXT([external],[need-ngettext])
AM_GNU_GETTEXT_VERSION([0.19.3])
AM_GNU_GETTEXT_REQUIRE_VERSION([0.19.3])
AM_GNU_GETTEXT_VERSION([0.18.1])
#
# check for gtk-doc
@ -59,7 +57,7 @@ fi
# enable creation of man pages
#
AC_ARG_ENABLE([man],
[AS_HELP_STRING([--enable-man], [generate man pages [default=auto]])],
[AC_HELP_STRING([--enable-man], [generate man pages [default=auto]])],
[
if test "$enable_man" = yes; then
AC_PATH_PROG([XSLTPROC], [xsltproc])
@ -76,14 +74,6 @@ AM_PATH_PYTHON([2.7])
PKG_PROG_PKG_CONFIG
AC_ARG_ENABLE([fuzzing],
[AS_HELP_STRING([--enable-fuzzing], [Turn on fuzzing build (for developers)])],
[enable_fuzzing=yes;
AC_SUBST([LIB_FUZZING_ENGINE])
AC_DEFINE([FUZZING], 1, [Define to 1 if this is a fuzzing build])
], [enable_fuzzing=no; LIB_FUZZING_ENGINE=""])
AM_CONDITIONAL([FUZZING], [test "$enable_fuzzing" = "yes"])
AC_ARG_ENABLE([cfi],
[AS_HELP_STRING([--enable-cfi], [Turn on clang's Control Flow Integrity (CFI)])],
[
@ -101,7 +91,6 @@ AC_ARG_ENABLE([ubsan],
[AS_HELP_STRING([--enable-ubsan], [Turn on Undefined Behavior Sanitizer (UBSan)])],
[
if test "$enable_ubsan" = yes; then
# Set basic UBSAN compiler flags. Add your own to CFLAGS.
CFLAGS=$CFLAGS" -fsanitize=undefined -fno-sanitize-recover=undefined"
fi
], [ enable_ubsan=no ])
@ -110,7 +99,6 @@ AC_ARG_ENABLE([asan],
[AS_HELP_STRING([--enable-asan], [Turn on Address Sanitizer (ASan)])],
[
if test "$enable_asan" = yes; then
# Set basic ASAN compiler flags. Add your own to CFLAGS.
CFLAGS=$CFLAGS" -fsanitize=address -fno-omit-frame-pointer"
AX_CHECK_COMPILE_FLAG([-fsanitize-address-use-after-scope], [CFLAGS="$CFLAGS -fsanitize-address-use-after-scope"])
fi
@ -127,10 +115,10 @@ AC_ARG_ENABLE([asan],
# 4. If any interfaces have been added, removed, or changed since the last update, increment current, and set revision to 0.
# 5. If any interfaces have been added since the last public release, then increment age.
# 6. If any existing interfaces have been removed or changed since the last public release, then set age to 0.
AC_SUBST([LIBPSL_SO_VERSION], m4_normalize(m4_include([libtool_version_info.txt])))
AC_SUBST([LIBPSL_SO_VERSION], [8:2:3])
AC_SUBST([LIBPSL_VERSION], $VERSION)
# Check for enable/disable runtime PSL data
# Check for enable/disable builtin PSL data
AC_ARG_ENABLE(runtime,
[
--enable-runtime[[=IDNA library]]
@ -162,14 +150,22 @@ AC_ARG_ENABLE(runtime,
# Check for enable/disable builtin PSL data
AC_ARG_ENABLE(builtin,
[
--enable-builtin Generate built-in PSL data
--enable-builtin[[=IDNA library]]
Specify the IDNA library used for built-in data generation:
libidn2 [[default]]: IDNA2008 library (also needs libunistring)
libicu: IDNA2008 UTS#46 library
libidn: IDNA2003 library (also needs libunistring)
--disable-builtin Do not generate built-in PSL data
], [
if test "$enableval" = "yes"; then
enable_builtin=yes
elif test "$enableval" = "libidn" -o "$enableval" = "libidn2" -o "$enableval" = "libicu"; then
AC_MSG_WARN([--enable-builtin=$enableval is deprecated, use --enable-builtin (enabled by default)])
enable_builtin=yes
if test "$enableval" = "libidn2" -o "$enableval" = "yes"; then
enable_builtin=libidn2
AC_DEFINE([BUILTIN_GENERATOR_LIBIDN2], [1], [generate PSL data using libidn2])
elif test "$enableval" = "libicu"; then
enable_builtin=libicu
AC_DEFINE([BUILTIN_GENERATOR_LIBICU], [1], [generate PSL data using libicu])
elif test "$enableval" = "libidn"; then
enable_builtin=libidn
AC_DEFINE([BUILTIN_GENERATOR_LIBIDN], [1], [generate PSL data using libidn])
elif test "$enableval" = "no"; then
enable_builtin=no
else
@ -177,14 +173,10 @@ AC_ARG_ENABLE(builtin,
fi
], [
# this is the default if neither --enable-builtin nor --disable-builtin were specified
enable_builtin=yes
enable_builtin=auto
])
if test "$enable_builtin" = "yes"; then
AC_DEFINE([ENABLE_BUILTIN], [1], [Generate built-in PSL data])
fi
if test "$enable_runtime" = "libidn2" -o "$enable_runtime" = "auto"; then
if test "$enable_runtime" = "libidn2" -o "$enable_builtin" = "libidn2" -o "$enable_runtime" = "auto" -o "$enable_builtin" = "auto"; then
# Check for libidn2
PKG_CHECK_MODULES([LIBIDN2], [libidn2], [
HAVE_LIBIDN2=yes
@ -195,7 +187,7 @@ if test "$enable_runtime" = "libidn2" -o "$enable_runtime" = "auto"; then
], [
AC_SEARCH_LIBS(idn2_lookup_u8, idn2, HAVE_LIBIDN2=yes,
[
if test "$enable_runtime" = "libidn2"; then
if test "$enable_runtime" = "libidn2" -o "$enable_builtin" = "libidn2"; then
AC_MSG_ERROR(You requested libidn2 but it is not installed.)
fi
], -lunistring)
@ -206,10 +198,14 @@ if test "$enable_runtime" = "libidn2" -o "$enable_runtime" = "auto"; then
enable_runtime=libidn2
AC_DEFINE([WITH_LIBIDN2], [1], [generate PSL data using libidn2])
fi
if test "$enable_builtin" = "auto"; then
enable_builtin=libidn2
AC_DEFINE([BUILTIN_GENERATOR_LIBIDN2], [1], [generate PSL data using libidn2])
fi
fi
fi
if test "$enable_runtime" = "libicu" -o "$enable_runtime" = "auto"; then
if test "$enable_runtime" = "libicu" -o "$enable_builtin" = "libicu" -o "$enable_runtime" = "auto" -o "$enable_builtin" = "auto"; then
# Check for libicu
# using pkg-config won't work on older systems like Ubuntu 12.04 LTS Server Edition 64bit
# using AC_SEARCH_LIBS also don't work since functions have the library version appended
@ -229,7 +225,7 @@ if test "$enable_runtime" = "libicu" -o "$enable_runtime" = "auto"; then
[[u_strToUTF8(NULL, 0, NULL, NULL, 0, NULL);]])],
[HAVE_LIBICU=yes; LIBICU_LIBS="-licuuc"; AC_MSG_RESULT([yes])],
[ AC_MSG_RESULT([no]);
if test "$enable_runtime" = "libicu"; then
if test "$enable_runtime" = "libicu" -o "$enable_builtin" = "libicu"; then
AC_MSG_ERROR(You requested libicu but it is not installed.)
fi
LIBS=$OLDLIBS
@ -239,12 +235,16 @@ if test "$enable_runtime" = "libicu" -o "$enable_runtime" = "auto"; then
if test "x$HAVE_LIBICU" = "xyes"; then
if test "$enable_runtime" = "auto"; then
enable_runtime=libicu
AC_DEFINE([WITH_LIBICU], [1], [generate PSL data using libicu])
AC_DEFINE([BUILTIN_GENERATOR_LIBICU], [1], [generate PSL data using libicu])
fi
if test "$enable_builtin" = "auto"; then
enable_builtin=libicu
AC_DEFINE([BUILTIN_GENERATOR_LIBICU], [1], [generate PSL data using libicu])
fi
fi
fi
if test "$enable_runtime" = "libidn" -o "$enable_runtime" = "auto"; then
if test "$enable_runtime" = "libidn" -o "$enable_builtin" = "libidn" -o "$enable_runtime" = "auto" -o "$enable_builtin" = "auto"; then
# Check for libidn
PKG_CHECK_MODULES([LIBIDN], [libidn], [
HAVE_LIBIDN=yes
@ -255,7 +255,7 @@ if test "$enable_runtime" = "libidn" -o "$enable_runtime" = "auto"; then
], [
AC_SEARCH_LIBS(idna_to_ascii_8z, idn, HAVE_LIBIDN=yes,
[
if test "$enable_runtime" = "libidn"; then
if test "$enable_runtime" = "libidn" -o "$enable_builtin" = "libidn"; then
AC_MSG_ERROR(You requested libidn but it is not installed.)
fi
])
@ -266,6 +266,10 @@ if test "$enable_runtime" = "libidn" -o "$enable_runtime" = "auto"; then
enable_runtime=libidn
AC_DEFINE([WITH_LIBIDN], [1], [generate PSL data using libidn])
fi
if test "$enable_builtin" = "auto"; then
enable_builtin=libidn
AC_DEFINE([WITH_LIBIDN], [1], [generate PSL data using libidn])
fi
fi
fi
@ -273,6 +277,9 @@ fi
if test "$enable_runtime" = "auto"; then
enable_runtime=no
fi
if test "$enable_builtin" = "auto"; then
enable_builtin=no
fi
if test "x$HAVE_LIBIDN2" = "xyes" -o "x$HAVE_LIBIDN" = "xyes"; then
# Check for libunistring, we need it for psl_str_to_utf8lower()
@ -286,7 +293,10 @@ AM_ICONV
AM_CONDITIONAL([WITH_LIBICU], test "x$enable_runtime" = "xlibicu")
AM_CONDITIONAL([WITH_LIBIDN2], test "x$enable_runtime" = "xlibidn2")
AM_CONDITIONAL([WITH_LIBIDN], test "x$enable_runtime" = "xlibidn")
AM_CONDITIONAL([ENABLE_BUILTIN], test "x$enable_builtin" = "xyes")
AM_CONDITIONAL([BUILTIN_GENERATOR_LIBICU], test "x$enable_builtin" = "xlibicu")
AM_CONDITIONAL([BUILTIN_GENERATOR_LIBIDN2], test "x$enable_builtin" = "xlibidn2")
AM_CONDITIONAL([BUILTIN_GENERATOR_LIBIDN], test "x$enable_builtin" = "xlibidn")
AM_CONDITIONAL([WITH_BUILTIN], test $enable_builtin = yes)
# Solaris has socket in libsocket and inet_ntop in libnsl, but also needs libsocket, so the order is important here
AC_CHECK_LIB([socket], [socket], [NEEDS_SOCKET=yes], [])
@ -339,19 +349,19 @@ fi
# Check for distribution-wide PSL file
AC_ARG_WITH(psl-distfile,
AS_HELP_STRING([--with-psl-distfile=[PATH]], [path to distribution-wide PSL file]),
AC_HELP_STRING([--with-psl-distfile=[PATH]], [path to distribution-wide PSL file]),
PSL_DISTFILE=$withval AC_SUBST(PSL_DISTFILE))
# Check for custom PSL file
AC_ARG_WITH(psl-file,
AS_HELP_STRING([--with-psl-file=[PATH]], [path to PSL file]),
AC_HELP_STRING([--with-psl-file=[PATH]], [path to PSL file]),
PSL_FILE=$withval,
PSL_FILE="\$(top_srcdir)/list/public_suffix_list.dat")
AC_SUBST(PSL_FILE)
# Check for custom PSL test file
AC_ARG_WITH(psl-testfile,
AS_HELP_STRING([--with-psl-testfile=[PATH]], [path to PSL test file]),
AC_HELP_STRING([--with-psl-testfile=[PATH]], [path to PSL test file]),
PSL_TESTFILE=$withval,
PSL_TESTFILE="\$(top_srcdir)/list/tests/tests.txt")
AC_SUBST(PSL_TESTFILE)
@ -360,12 +370,6 @@ AC_SUBST(PSL_TESTFILE)
AC_FUNC_ALLOCA
AC_CHECK_FUNCS([strndup clock_gettime fmemopen nl_langinfo])
# check for dirent.h
AC_HEADER_DIRENT
# strings.h may not exist on WIN32
AC_CHECK_HEADERS([strings.h])
# Override the template file name of the generated .pc file, so that there
# is no need to rename the template file when the API version changes.
AC_CONFIG_FILES([Makefile
@ -400,5 +404,4 @@ AC_MSG_NOTICE([Summary of build options:
Docs: $enable_gtk_doc
Man pages: $enable_man
Tests: ${TESTS_INFO}
Fuzzing build: $enable_fuzzing, $LIB_FUZZING_ENGINE
])

View File

@ -37,10 +37,10 @@ for CC in gcc clang; do
rm -f $CACHEFILE
for options in \
"--enable-runtime=libicu" \
"--enable-runtime=libidn2" \
"--enable-runtime=libidn" \
"--disable-runtime"; do
"--enable-runtime=libicu --enable-builtin=libicu" \
"--enable-runtime=libidn2 --enable-builtin=libidn2" \
"--enable-runtime=libidn --enable-builtin=libidn" \
"--disable-runtime --enable-builtin=libicu"; do
export DISTCHECK_CONFIGURE_FLAGS="-q -C --cache-file=$CACHEFILE $options"
if test "$CC" = "clang"; then
echo

View File

@ -51,7 +51,7 @@ cd ..
# build libpsl
export WINEPATH="$INSTALLDIR/bin;$INSTALLDIR/lib;/usr/$PREFIX/bin;/usr/$PREFIX/lib;$PWD/libpsl/.libs;$GCCLIB"
./autogen.sh
./configure --build=x86_64-pc-linux-gnu --host=$PREFIX --enable-shared --disable-gtk-doc --enable-runtime=libidn2 --prefix=$INSTALLDIR
./configure --build=x86_64-pc-linux-gnu --host=$PREFIX --enable-shared --disable-gtk-doc --enable-runtime=libidn2 --enable-builtin=libidn2 --prefix=$INSTALLDIR
make clean
make -j$(nproc)
make check -j$(nproc) LOG_COMPILER=wine

View File

@ -86,7 +86,7 @@ include $(top_srcdir)/gtk-doc.make
# Other files to distribute
# e.g. EXTRA_DIST += version.xml.in
EXTRA_DIST += meson.build
EXTRA_DIST +=
# Files not to distribute
# for --rebuild-types in $(SCAN_OPTIONS), e.g. $(DOC_MODULE).types

View File

@ -22,6 +22,10 @@
</para>
<xi:include href="xml/libpsl.xml"/>
</chapter>
<chapter id="object-tree">
<title>Object Hierarchy</title>
<xi:include href="xml/tree_index.sgml"/>
</chapter>
<index id="api-index-full">
<title>API Index</title>
<xi:include href="xml/api-index-full.xml"><xi:fallback /></xi:include>
@ -30,35 +34,6 @@
<title>Index of deprecated API</title>
<xi:include href="xml/api-index-deprecated.xml"><xi:fallback /></xi:include>
</index>
<index role="0.1">
<title>Index of symbols included in 0.1</title>
<xi:include href="xml/api-index-0.1.xml"><xi:fallback/></xi:include>
</index>
<index role="0.2.5">
<title>New symbols included in 0.2.5</title>
<xi:include href="xml/api-index-0.2.5.xml"><xi:fallback/></xi:include>
</index>
<index role="0.4">
<title>New symbols included in 0.4</title>
<xi:include href="xml/api-index-0.4.xml"><xi:fallback/></xi:include>
</index>
<index role="0.10.0">
<title>New symbols included in 0.10.0</title>
<xi:include href="xml/api-index-0.10.0.xml"><xi:fallback/></xi:include>
</index>
<index role="0.11.0">
<title>Index of symbols included in 0.11.0</title>
<xi:include href="xml/api-index-0.11.0.xml"><xi:fallback/></xi:include>
</index>
<index role="0.16">
<title>Index of symbols included in 0.16</title>
<xi:include href="xml/api-index-0.16.xml"><xi:fallback/></xi:include>
</index>
<index role="0.19">
<title>Index of symbols included in 0.19</title>
<xi:include href="xml/api-index-0.19.xml"><xi:fallback/></xi:include>
</index>
<!--
<xi:include href="xml/annotation-glossary.xml"><xi:fallback /></xi:include>

View File

@ -1,7 +1,6 @@
<SECTION>
<FILE>libpsl</FILE>
<TITLE>Public Suffix List functions</TITLE>
PSL_API
PSL_VERSION
PSL_VERSION_MAJOR
PSL_VERSION_MINOR

View File

@ -1,20 +0,0 @@
gnome = import('gnome')
if get_option('docs')
configure_file(
input : 'version.xml.in',
output : 'version.xml',
configuration : cdata)
gnome.gtkdoc('libpsl',
main_sgml: 'libpsl-docs.sgml',
src_dir: [
'src',
'include',
],
dependencies: libpsl,
scan_args: [
'--ignore-decorators=G_GNUC_PSL_UNUSED',
],
install: true)
endif

View File

@ -1,18 +1,15 @@
AM_CFLAGS = $(WERROR_CFLAGS) $(WARN_CFLAGS)
AM_CPPFLAGS = -I$(top_srcdir)/include -I$(srcdir) -DSRCDIR=\"$(abs_srcdir)\"
AM_CPPFLAGS = -I$(top_srcdir)/include -I$(srcdir) -DSRCDIR=\"$(abs_srcdir)\" -DTEST_RUN
#AM_LDFLAGS = -static
AM_LDFLAGS = -no-install
LDADD = ../src/libpsl.la $(LIBICU_LIBS) $(LIBIDN_LIBS) $(LIBIDN2_LIBS)
if !FUZZING
MAIN = main.c fuzzer.h
endif
if WITH_LIBICU
XLIBS = $(LIBICU_LIBS)
XTYPE = _icu
libpsl_icu_fuzzer_SOURCES = libpsl_fuzzer.c $(MAIN)
libpsl_icu_load_fuzzer_SOURCES = libpsl_load_fuzzer.c $(MAIN)
libpsl_icu_load_dafsa_fuzzer_SOURCES = libpsl_load_dafsa_fuzzer.c $(MAIN)
libpsl_icu_fuzzer_SOURCES = libpsl_fuzzer.c main.c fuzzer.h
libpsl_icu_load_fuzzer_SOURCES = libpsl_load_fuzzer.c main.c fuzzer.h
libpsl_icu_load_dafsa_fuzzer_SOURCES = libpsl_load_dafsa_fuzzer.c main.c fuzzer.h
PSL_TESTS = \
libpsl_icu_fuzzer$(EXEEXT) \
libpsl_icu_load_fuzzer$(EXEEXT) \
@ -21,9 +18,9 @@ else
if WITH_LIBIDN2
XLIBS = -lidn2 -lunistring
XTYPE = _idn2
libpsl_idn2_fuzzer_SOURCES = libpsl_fuzzer.c $(MAIN)
libpsl_idn2_load_fuzzer_SOURCES = libpsl_load_fuzzer.c $(MAIN)
libpsl_idn2_load_dafsa_fuzzer_SOURCES = libpsl_load_dafsa_fuzzer.c $(MAIN)
libpsl_idn2_fuzzer_SOURCES = libpsl_fuzzer.c main.c fuzzer.h
libpsl_idn2_load_fuzzer_SOURCES = libpsl_load_fuzzer.c main.c fuzzer.h
libpsl_idn2_load_dafsa_fuzzer_SOURCES = libpsl_load_dafsa_fuzzer.c main.c fuzzer.h
PSL_TESTS = \
libpsl_idn2_fuzzer$(EXEEXT) \
libpsl_idn2_load_fuzzer$(EXEEXT) \
@ -32,9 +29,9 @@ else
if WITH_LIBIDN
XLIBS = -lidn -lunistring
XTYPE = _idn
libpsl_idn_fuzzer_SOURCES = libpsl_fuzzer.c $(MAIN)
libpsl_idn_load_fuzzer_SOURCES = libpsl_load_fuzzer.c $(MAIN)
libpsl_idn_load_dafsa_fuzzer_SOURCES = libpsl_load_dafsa_fuzzer.c $(MAIN)
libpsl_idn_fuzzer_SOURCES = libpsl_fuzzer.c main.c fuzzer.h
libpsl_idn_load_fuzzer_SOURCES = libpsl_load_fuzzer.c main.c fuzzer.h
libpsl_idn_load_dafsa_fuzzer_SOURCES = libpsl_load_dafsa_fuzzer.c main.c fuzzer.h
PSL_TESTS = \
libpsl_idn_fuzzer$(EXEEXT) \
libpsl_idn_load_fuzzer$(EXEEXT) \
@ -42,9 +39,9 @@ if WITH_LIBIDN
else
XLIBS =
XTYPE =
libpsl_fuzzer_SOURCES = libpsl_fuzzer.c $(MAIN)
libpsl_load_fuzzer_SOURCES = libpsl_load_fuzzer.c $(MAIN)
libpsl_load_dafsa_fuzzer_SOURCES = libpsl_load_dafsa_fuzzer.c $(MAIN)
libpsl_fuzzer_SOURCES = libpsl_fuzzer.c main.c fuzzer.h
libpsl_load_fuzzer_SOURCES = libpsl_load_fuzzer.c main.c fuzzer.h
libpsl_load_dafsa_fuzzer_SOURCES = libpsl_load_dafsa_fuzzer.c main.c fuzzer.h
PSL_TESTS = \
libpsl_fuzzer$(EXEEXT) \
libpsl_load_fuzzer$(EXEEXT) \
@ -53,18 +50,7 @@ endif
endif
endif
if FUZZING
bin_PROGRAMS = $(PSL_TESTS)
LDADD += $(LIB_FUZZING_ENGINE)
AM_LDFLAGS = -no-install
else
AM_CPPFLAGS += -DTEST_RUN
AM_TESTS_ENVIRONMENT = export VALGRIND_TESTS"=@VALGRIND_TESTS@";
TESTS = $(PSL_TESTS)
check_PROGRAMS = $(PSL_TESTS)
endif
EXTRA_DIST = meson.build
check_PROGRAMS = $(PSL_TESTS)
dist-hook:
find . -name '*.options' -exec cp -v '{}' $(distdir) ';'
@ -73,6 +59,7 @@ dist-hook:
find . -name '*.repro' -exec cp -vr '{}' $(distdir) ';'
TESTS_ENVIRONMENT = TESTS_VALGRIND="@VALGRIND_ENVIRONMENT@"
TESTS = $(PSL_TESTS)
clean-local:
rm -rf *.gc?? *.log lcov coverage.info *_fuzzer *.o
@ -80,7 +67,7 @@ clean-local:
fuzz-coverage: $(PSL_TESTS)
find . -name '*_fuzzer' -exec ./coverage.sh '{}' ';'
CXX ?= clang
CXX ?= clang-5.0
CXXFLAGS ?= $(CFLAGS)
oss-fuzz:

View File

@ -12,58 +12,24 @@ regression testing with top dir 'make check' or 'make check-valgrind'.
The ./configure runs below are for libidn2.
To test libicu replace 'libidn2' with 'libicu', to test with
libidn replace 'libidn2' by 'libidn'.
To test without IDNA libraries replace `--enable-runtime=...` with `--disable-runtime`
and replace `--enable-builtin=...` with `--disable-builtin`.
# Running a fuzzer using clang
Use the following commands on top dir:
```
export CC=clang
export LIB_FUZZING_ENGINE="-lFuzzer -lstdc++"
export UBSAN_OPTIONS=print_stacktrace=1
export ASAN_SYMBOLIZER_PATH=/usr/bin/llvm-symbolizer
# set flags for clang asan
CFLAGS="-O1 -fno-omit-frame-pointer -gline-tables-only -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION -fsanitize=address,leak,nonnull-attribute -fsanitize-address-use-after-scope -fsanitize-coverage=trace-pc-guard,trace-cmp"
# set flags for clang ubsan
CFLAGS="$CFLAGS -fsanitize=bool,array-bounds,float-divide-by-zero,function,integer-divide-by-zero,return,shift,signed-integer-overflow,vla-bound,vptr,undefined,alignment,null,enum,integer,builtin,float-divide-by-zero,function,object-size,returns-nonnull-attribute,unsigned-integer-overflow,unreachable -fsanitize=fuzzer-no-link"
# unsigned-integer-overflow is not UB, so recover when we see it.
CFLAGS="$CFLAGS -fno-sanitize-recover=all -fsanitize-recover=unsigned-integer-overflow"
export CFLAGS
./configure --enable-static --disable-gtk-doc --enable-fuzzing --enable-runtime=libidn2 --enable-builtin=libidn2
export CC=clang-5.0
export CFLAGS="-O1 -fno-omit-frame-pointer -gline-tables-only -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION -fsanitize=address -fsanitize-address-use-after-scope -fsanitize-coverage=trace-pc-guard,trace-cmp"
./configure --enable-static --disable-gtk-doc --enable-runtime=libidn2 --enable-builtin=libidn2
make clean
make -j$(nproc)
cd fuzz
# run libpsl_fuzzer
# build and run libpsl_fuzzer
./run-clang.sh libpsl_fuzzer
```
If you see a crash, then a crash corpora is written that can be used for further
investigation. E.g.
```
==2410==ERROR: AddressSanitizer: heap-use-after-free on address 0x602000004e90 at pc 0x00000049cf9c bp 0x7fffb5543f70 sp 0x7ff
fb5543720
...
Test unit written to ./crash-adc83b19e793491b1c6ea0fd8b46cd9f32e592fc
```
To reproduce the crash:
```
./libpsl_fuzzer < ./crash-adc83b19e793491b1c6ea0fd8b46cd9f32e592fc
```
You can also copy/move that file into libpsl_fuzzer.repro/
and re-build the project without fuzzing for a valgrind run, if you like that better.
Just a `./configure` and a `make check-valgrind` should reproduce it.
# Running a fuzzer using AFL
Use the following commands on top dir:
@ -101,7 +67,7 @@ directory.
# Clang CFI instrumentation
```
CC=clang CFLAGS="-B/usr/bin/gold -O0 -fsanitize=cfi -flto -fvisibility=default -fno-sanitize-trap=all" ./configure
CC=clang-5.0 CFLAGS="-B/usr/bin/gold -O0 -fsanitize=cfi -flto -fvisibility=default -fno-sanitize-trap=all" ./configure
make clean
make
make check

View File

@ -1,5 +1,5 @@
/*
* Copyright(c) 2017-2022 Tim Ruehsen
* Copyright(c) 2017-2018 Tim Ruehsen
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),

View File

@ -1,8 +1,15 @@
#!/bin/sh -eu
# As a first step see README.md and follow the steps under "Running a fuzzer using clang".
# First step: In the top directory execute
# export CC=clang-5.0
# export CFLAGS="-O1 -fno-omit-frame-pointer -gline-tables-only -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION -fsanitize=address -fsanitize-address-use-after-scope -fsanitize-coverage=trace-pc-guard,trace-cmp"
# ./configure --enable-static --disable-gtk-doc --enable-runtime=libidn2 --enable-builtin=libidn2
# make clean
# make -j$(nproc) LIB_FUZZING_ENGINE="-lFuzzer"
# cd fuzz
# make -j$(nproc) check
# You might need 'gsutil' to download new corpora from the Google cloud:
#
# Read the docs at https://github.com/google/oss-fuzz/blob/master/docs/corpora.md
# then install 'google-cloud-sdk' and execute 'gcloud init'.
# Now 'gsutil' should be ready to use.
@ -13,20 +20,13 @@ if test -z "$1"; then
exit 1
fi
if ! grep -q FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION Makefile; then
echo "The fuzzers haven't been built for fuzzing (maybe for regression testing !?)"
echo "Please built regarding README.md and try again."
exit 1
fi
fuzzer=$1
project=$(echo $1 | cut -d'_' -f1)
# sync/copy the OSS-Fuzz corpora into the .new directory
mkdir -p ${fuzzer}.in ${fuzzer}.new
cp -fp ${fuzzer}.in/* ${fuzzer}.new 2>/dev/null || true
gsutil cp $(gsutil ls gs://${project}-backup.clusterfuzz-external.appspot.com/corpus/libFuzzer/${fuzzer}|tail -n 1) ${fuzzer}.new/
(cd ${fuzzer}.new && unzip -o *.zip && mv *.zip ..)
mkdir -p ${fuzzer}.new
cp -p ${fuzzer}.in/* ${fuzzer}.new
gsutil -m rsync gs://${project}-corpus.clusterfuzz-external.appspot.com/libFuzzer/${fuzzer} ${fuzzer}.new
# create fuzzer target
BUILD_ONLY=1 ./run-clang.sh ${fuzzer}
@ -35,9 +35,8 @@ BUILD_ONLY=1 ./run-clang.sh ${fuzzer}
./${fuzzer} -merge=1 ${fuzzer}.in ${fuzzer}.new
# now clear .new dir and put all corpora there
rm -rf ${fuzzer}.new
mv ${fuzzer}.in ${fuzzer}.new
mkdir ${fuzzer}.in
rm -f ${fuzzer}.new/*
mv ${fuzzer}.in/* ${fuzzer}.new
# now merge again (optimizes number of corpora)
./${fuzzer} -merge=1 ${fuzzer}.in ${fuzzer}.new

View File

@ -1,5 +1,5 @@
/*
* Copyright(c) 2017-2022 Tim Ruehsen
* Copyright(c) 2017-2018 Tim Ruehsen
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),

View File

@ -0,0 +1 @@
...à

View File

@ -1,5 +1,5 @@
/*
* Copyright(c) 2017-2022 Tim Ruehsen
* Copyright(c) 2017-2018 Tim Ruehsen
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
@ -34,7 +34,6 @@ typedef unsigned __int8 uint8_t;
#include <stdlib.h> /* malloc, free */
#include <string.h> /* memcpy */
#include <stdio.h> /* fmemopen */
#include "libpsl.h"
#include "fuzzer.h"

View File

@ -1 +0,0 @@
<EFBFBD>€<EFBFBD>@

View File

@ -0,0 +1 @@
* ˙˙G¸¸GaguchéŔDň„uzz˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙o.iôŔ´o.đ˙˙˙˙˙˙aido.

View File

@ -0,0 +1 @@
agucguchéaguchéÀa

View File

@ -1 +0,0 @@
<02>c<EFBFBD>mx<6D>

View File

@ -1 +0,0 @@
<02>c<EFBFBD>mx<6D>-<2D>

View File

@ -0,0 +1 @@
;agucnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnhà;Dö„uzzo.iôÀ´

View File

@ -1 +0,0 @@
Γ<>ό<EFBFBD>®<EFBFBD>γ<EFBFBD>ο<EFBFBD>ν

View File

@ -1 +0,0 @@
<02>xn--tδγοαν

View File

@ -1,5 +1,5 @@
/*
* Copyright(c) 2017-2022 Tim Ruehsen
* Copyright(c) 2017-2018 Tim Ruehsen
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
@ -34,7 +34,6 @@ typedef unsigned __int8 uint8_t;
#include <stdlib.h> /* malloc, free */
#include <string.h> /* memcpy */
#include <stdio.h> /* fmemopen */
#include "libpsl.h"
#include "fuzzer.h"

View File

@ -0,0 +1,38 @@
.
иИ.3
иИ.
аИ.
кИ.кИ.
иИ.
иИ..
иИ.5
иИ.
аИ.
кИ.кИ
.иИ.
и.
иИ.И.
иИ.3
иИ.
а<EFBFBD>.
кИ.
иИ.
иИ.
иИ.
иИ.
иИ
иИ.
иИ.
и.3
иИ.
аИ.
кИ.
иМ.
аИ.
кИ.
иИ.
И.
иИ.
иИ.
иИ.
иИ.

View File

@ -1,32 +0,0 @@
Ƽ.˸.Ƽ.˸.Ǽ.˸@.ü.˸.ü.ȹ.ü.󠁸ü.Ȼ+.ü*..<2E><>
Ƽ.˸.Ƽ.˸.Ǽ.˸@.ü.˸.ü.ȹ.ļ.󠁸ü.Ȼ+.ü*..<2E>
Ƽ.˸.Ƽ.˸.Ǽ.˸@.ü.˸.ü.ȹ.ü.󠁸ü.Ȼ%.ü*.k
Ƽ.˸.Ƽ.˸.Ǽ.˸@.ü.˸.ü.ȹ.ü.󠁸ü.Ȼ+.ü*..<2E><>
Ƽ.˸.Ƽ.˸.Ǽ.˸@.ü.˸.ü.ȹ.ü.󠁸ü.Ȼ+.ü*.k
Ƽ.ɸ.Ƽ.˸.Ǽ.˸@.ü.˸.ü.ȹ.ü.󠁸ü.Ȼ+.Ӽ*..
Ƽ.˸.Ƽ.˸.Ǽ.˸@.ü.˸.ü.ȹ.ü.<2E><><EFBFBD><EFBFBD>ü.Ȼ+.ü*..<2E>
Ƽ.˸.ļ.˸.Ǽ.˸@.õ.˸.ü.ȹ.ü.󠁸ü.Ȼ+.ü*..<2E><>
Ƽ.˸.Ƽ.˸.Ǽ.˸@.ü.˸.ü.ȹ.ü.󠁸ü.Ȼ+.ü*.k
Ƽ.˸.Ƽ.˸.Ǽ.˸@.ü.˸.ü.ȹ.ü.󠁸ü.Ȼ%.ü*..ük
Ƽ.˸.Ƽ.˸.Ǽ.˸@.ü.˸.ü.ȹ.ü.󠁸ü.Ȼ+.ü*.k
Ƽ.ɸ.Ƽ.˸.Ǽ.˸@.ü.˸.ü.ȹ.ü.󠁸ü.Ȼ+.Ӽ*..
Ƽ.˼.Ƽ.˸.Ǽ.˸@.ü.˸.ü.ȹ.ü.󠁸ü.Ȼ+.ü*..<2E><>
Ƽ.˸.Ƽ.˸.Ǽ.˸@.õ.˸.ü.ȹ.ü.󠁸ü.Ȼﴅ.ü*..<2E>
Ƽ.˸.Ƽ.˸.Ǽ.˸@.ü.˸.ü.ȹ.ü.󠁸ü.Ȼ+.ü*.k
Ƽ.ɸ.Ƽ.˸.Ǽ.˸@.ü.˸.ü.ȹ.ü.󠁸ü.Ȼ+.Ӽ*..
Ƽ.ɸ.Ƽ.˸.Ǽ.˸@.ü.˸.ü.ȹ.ü.󠁸ü.Ȼ+.Ӽ*..
Ƽ.˼.Ƽ.˸.Ǽ.˸@.ü.˸.ü.ȹ.ü.󠁸ü.Ȼ+.Ӽ*..
Ƽ.ɸ.Ƽ.˸.Ǽ.˸@.ü.˸.ü.ȹ.ü.󠁸ü.Ȼ+.Ӽ*..
Ƽ.˼.Ƽ.˸.Ǽ.˸@.ü.˸.ü.ȹ.ü.󠁸ü.Ȼ+.Ӽ*..
Ƽ.ɸ.Ƽ.˸.Ǽ.˸@.ü.˸.ü.ȹ.ü.󠁸ü.Ȼ+.Ӽ*..
Ƽ.˼.Ƽ.˸.Ǽ.˸@.ü.˸.ü.ȹ.ü.󠁸ü.Ȼ+.ü*..<2E>
Ƽ.˸.Ƽ.˸.Ǽ.˸@.õ.˸.ü.ȹ.ü.󠁸ü.Ȼﴅ.ü*..<2E>k
Ƽ.˸.Ƽ.˸.Ǽ.˸@.ü.˸.ü.ȹ.ü.󠁸ü.Ȼ+.ü*.k
Ƽ.ɸ.Ƽ.˸.Ǽ.˸@.ü.˸.ü.ȹ.ü.󠁸ü.Ȼ+.Ӽ*..
Ƽ.˸.Ƽ.˸.Ǽ.˸@.ü.˸.ü.ȹ.ü.󠁸ü.Ȼ+.ü*..<2E>.
Ƽ.˸.Ƽ.˸.Ǽ.˸@.õ.˸.ü.ȹ.ü.󠁸ü.Ȼ+.ü*..<2E>
Ƽ.˸.Ƽ.˸.Ǽ.˸@.ü.˸.ü.ȹ.ü.󠁸ü.Ȼ%.ü*..˸k
Ƽ.˸.Ƽ.˸.Ǽ.˸@.ü.˸.ü.ȹ.ü.󠁸ü.Ȼ+.ü*.k
Ƽ.ɸ.Ƽ.˸.Ǽ.˸@.ü.˸.ü.ȹ.ü.󠁸ü.Ȼ+.Ӽ*..
Ƽ.˸.Ƽ.˸.Ǽ.˸@.ü.˸.ü.ȹ.ü.󠁸ü.Ȼ+.ü*..<2E>
Ƽ.˸.Ƽ.˸.Ǽ.˸@.õ.˸.ü.ȹ.ü.󠁸ü.Ȼ+.ü*.+.<2E>

View File

@ -1,33 +0,0 @@
(!
公.cƼ.˸.Ƽ.˯.ļA.˸.ü.ü.ȼ公司cn...ü.˸.ü(!wѼw//
公.cƼ.˸.Ƽ.˨.ļA.˸.ü.ü.ȼ僬司cn...ü.˸.ü(!wѷw/=
公.cƼ.˸.Ƽ.˯.ļA.˸.ü.ü.ȼ公司cn...ü.˸.ü(!wѷw//
公.cƼ.˸.Ƽ.˨.ļA.˸.ü.ü.ȼ公司cn...ü.˸.ü(!wѷw/=
公.cƼ.˸.Ƽ.˯.ļA.˸.ü.ü.ȼ僬司cn...ü.˸.ü(!wѷw/=
公.cƼ.˸.Ƽ.˯.ļA.˸.ü.ü.ȼ公司cn...ü.˸.ü(!wѷw//
公.cƼ.˸.Ƽ.˨.ļA.˸.ü.ü.ȼ公变#n...ü.˰.ü(#wѷw/A
公.cƼ.˸.Ƽ.˨.ļA.˸.ü.ü.ȼ僬司cn...ü.˸.ü(!wѷw/=
公.cƼ.˸.Ƽ.˯.ļA.˸.ü.ü.ȼ公司cn...ü.˸.ü(!wѷw//
公.cƼ.˸.Ƽ.˨.ļA.˸.ü.ü.ȼ公变#n...ü.˰.ü(#wѷw/A
公.cƼ.˸.Ƽ.˨.ļA.˸.ü.ü.ȼ公司cn...ü.˸.ü(!wѷw/=
公.cƼ.˸.Ƽ.˯.ļA.˸.ü.ü.ȼ公司cn...ü.˸.ü(!wѷw//
公.cƼ.˸.Ƽ.˨.ļA.˸.ü.ü.ȼ僬司cn...ü.˸.ü(!wѷw/=
公.cƼ.˸.Ƽ.˯.ļA.˸.ü.ü.ȼ公司cn...ü.˸.ü(!wѷw//
公.cƼ.˸.Ƽ.˨.ļA.˸.ü.ü.ȼ公变#n...ü.˰.ü(#wѷw/A
公.cƼ.˸.Ƽ.˨.ļA.˸.ü.ü.ȼ僬司cn...ü.˸.ü(!wѷw/=
公.cƼ.˸.Ƽ.˯.ļA.˸.ü.ü.ȼ公司cn...ü.˸.ü(!wѷw//
公.cƼ.˸.Ƽ.˨.ļA.˸.ü.ü.ȼ公变#n...ü.˰.ü(#wѷw/A
公.cƼ.˸.Ƽ.˨.ļA.˸.ü.ü.ȼ僬司cn...ü.˸.ü(!wѷw/=
公.cƼ.˸.Ƽ.˯.ļA.˸.ü.ü.ȼ公司cn...ü.˸.ü(!wѷw//
公.cƼ.˸.Ƽ.˨.ļA.˸.ü.ü.ȼ公变#n...ü.˰.ü(#wѷw/A
公.cƼ.˸.Ƽ.˨.ļA.˸.ü.ü.ȼ僬司cn...ü.˸.ü(!wѷw/=
公.cƼ.˸.Ƽ.˯.ļA.˸.ü.ü.ȼ公司cn...ü.˸.ü(!wѷw//
公.cƼ.˸.Ƽ.˨.ļA.˸.ü.ü.ȼ公变#n...ü.˰.ü(#wѷw/A
公.cƼ.˸.Ƽ.˨.ļA.˸.ü.ü.ȼ僬司cn...ü.˸.ü(!wѷw/<
公.cƼ.˸.Ƽ.˯.ļA.˸.ü.ü.ȼ公司cn...ü.˸.ü(!wѷw//
公.cƼ.˸.Ƽ.˨.ļA.˸.ü.ü.ȼ公变#n...ü.˰.ü(#wѷw/A
公.cƼ.˸.Ƽ.˨.ļA.˸.ü.ü.ȼ僬司cn...ü.˸.ü(!wѷw/=
公.cƼ.˸.Ƽ.˯.ļA.˸.ü.ü.ȼ公司.cn...ü.˸.ü(!wѷw//
公.cƼ.˸.Ƽ.˨.ļA.˸.ü.ü.ȼ公变#n...ü.˰.ü(#wѷw/A
公.cƼ.˸.Ƽ.˨.ļA.˸.ü.ü.ȼ公变#n...ü.˰.ü(#wѷw/A
公.cƼ.˸.Ƽ.˨.ļA.˸.ü.ü.ȼ僬司cn...ü.˸.ü(!wѷwa=

View File

@ -1,31 +0,0 @@
//===BEGIN PRIVATE DOMAINS===
//===END PRIVATE DOMAINS===
//===BEGIN PRIVATE DOMAINS===
//===END PRIVATE DOMAINS===
//===BEGIN PRIVATE DOMAINS===
//===END PRIVATE DOMAINS===
//===BEGIN PRIVATE DOMAINS===
//===END PRIVATE DOMAINS===
//===BEGIN PRIVATE DOMAINS===
//===END PRIVATE DOMAINS===
//===BEGIN PRIVATE DOMAINS===
//===END PRIVATE DOMAINS===
//===BEGIN PRIVATE DOMAINS===
//===END PRIVATE DOMAINS===
//===BEGIN PRIVATE DOMAINS===
//===END PRIVATE DOMAINS===
//===BEGIN PRIVATE DOMAINS===
//===END PRIVATE DOMAINS===
//===BEGIN PRIVATE DOMAINS===
//===END PRIVATE DOMAINS===
//===BEGIN PRIVATE DOMAINS===
//===END PRIVATE DOMAINS===
//===BEGIN PRIVATE DOMAINS===
//===END PRIVATE DOMAINS===
//===BEGIN PRIVATE DOMAINS===
//===END PRIVATE DOMAINS===
//===BEGIN PRIVATE DOMAINS===
//===END PRIVATE DOMAINS===
//===BEGIN PRIVATE DOMAINS===
//===END PRIVATE DOMAINS===
//===BEGIN PRIVATE DOMAINS===

View File

@ -1,8 +0,0 @@
Мё.Гј.Гј.Иј.Иј.Гј.Лё.Гј.Вј.ИЅ.ЖЅ.Мё=..ГЅ.И».Гј.ј
В¬.Жј.Лё.Жј.ЛЁ.Дј.Лё.Гј.Вј.ИЅ.ЖЅ.Мё=..ГЅ.И».Гј.ј
В¬.Жј.Лё.Жј.ЛЁ.Дј.Лё.Гј.Вј.ИЅ.ЖЅ.Мё=..ВЅ.И».Гј.ј
В¬.Жј.Лё.Жј.ЛЁ.Дј.Лё.Гј.Вј.ИЅ.ЖЅ.Мё=..ВЅ.И».Гј.ј
В¬.Жј.Лё.Жј.ЛЁ.Дј.Лё.Гј.Вј.ИЅ.ЕЅ.Мё=..ГЅ.И».Гј.ј
В¬.Жј.Лё.Жј.ЛЁ.Дј.Лё.Гј.Вј.ИЅ.ЖЅ.Мё=..ВЅ.И».Гј.ј
В¬.Жј.Лё.Жј.ЛЁ.Дј.Лё.Гј.Вј.ИЅ.ЖЅ.Мё=..ВЅ.И».Гј.ј
В¬.Жј.Лё.Жј.ЛЁ.Дј.Лё.Гј.ГјИј.Гј.Лё.Гј.Гј.ИЅ.ЖЅ.М

View File

@ -0,0 +1,3 @@
.å…¬å<C2AC>¸.cn_¯¸s;
!city.ka*.*.kawa!ü.comppÿÿÿÿÿÿÿÿÿÿÿÿÿ// ===END ICANN DOMAINS===asaki.jpwå.j
<EFBFBD>¸.pp!ÿpšppi

View File

@ -1,16 +0,0 @@
Мё.Гј.Гј.Иј.Иј.Гј.Лё.Гј.Вј.ИЅ.ЖЅ.Мё=..ГЅ.И».Гј.ј
В¬.Жј.Лё.Жј.ЛЁ.Дј.Лё.Гј.Вј.ИЅ.ЖЅ.ЖЅ.Мё=ГЅ.И».Гј.ј
В¬.Жј.Лё.Жј.ЛЁ.Дј.Лё.Гј.Вј.ИЅ.ЖЅ.Мё=..ГЅ.И».Гј.ј
В¬.Жј.Лё.Жј.ЛЁ.Дј.Лё.Гј.Вј.ИЅ.ЖЅ.Мё=..ВЅ.И».Гј.ј
В¬.Жј.Лё.Жј.ЛЁ.Дј.Лё.Гј.Вј.ИЅ.ЖЅ.Мё=..ВЅ.И».Гј.ј
В¬.Жј.Лё.Жј.ЛЁ.Дј.Лё.Гј.Вј.ИЅ.ЖЅ.Мё=..ГЅ.И».Гј.ј
В¬.Жј.Лё.Жј.ЛЁ.Дј.Лё.Гј.Вј.ИЅ.ЖЅ.Мё=..ВЅ.И».Гј.ј
В¬.Жј.Лё.Жј.ЛЁ.Дј.Лё.Гј.Вј.ИЅ.ЖЅ.Мё=..ВЅ.И».Гј.ј
В¬.Жј.Лё.Жј.ЛЁ.Дј.Лё.Гј.Вј.ИЅ.ЖЅ.Мё=..ВЅ.И».Гј.ј
Гј.ГјИј.Гј.Лј.Лё.Жј.ЛЁ.Дј.Лё.Гј.Вј.ИЅ.ЖЅ.Мё=..Вј.ј
В¬Дј.Лё.Гј.Гј.Лј.ЛЁ.Дј.Лё.Гј.Вј.ИЅ.ЖЅ.Мё=..ВЅ.И»..ј
В¬.Жј.Лё.Жј.ЛЁ.Дј.Лё.Гј.Вј.ИЅ.ЖЅ.Мё=..ВЅ.И».Гј.ј
В¬.Жј.Лё.Жј.ЛЁ.Дј.Лё.Гј.Вј.ИЅ.ЖЅ.Мё=..ГЅ.И».Гј.ј
+В¬.Жј.Лё.Жј.ЛЁ.Дј.Лё.Гј.Вј.ИЅ.ЖЅ.Мё=..ВЅ.И».Гј.ј
В¬.Жј.Лё.Жј.ЛЁ.Дј.Лё.Гј.Вј.ИЅ.ЖЅ.Мё=..ВЅ.И».Гј.ј
В¬.Жј.Лё.Жј.ЛЁ.Дј.Лё.Гј.ГјИј.Гј.Лё.Гј.Гј.ИЅ.ЖЅ.М

View File

@ -0,0 +1,26 @@
pã.p
ã.p
å….jp
ã.p
ã.p
ã.p
ã.p
ã.p
ã.p
ã.p
ã.p
ã.p
ã.p
ã.p
ã.p
ã.p
ã.p
pãp.ã
.
ã.p
ã.p
.p
ã.p
ã.p
ã.p
ã

View File

@ -0,0 +1,6 @@
.DAFSA@PSL_¯¸s;
™.jp
p*.pi
..jp
<EFBFBD>.
¸kp.Ÿšppi

View File

@ -0,0 +1,148 @@
;xn-
à….-
à…(kظ.
à….-
à….k;xn-
à….-
à…(kظ.
à….-
à….k
à….
à…ظ.
à….à….
à….-
à….
à…ظ.
à….à….
à….…(kظ.
à….-
à….k;xn-
à….-
à…(kظ.
à….-
à….k
à….
à…ظ.
à…(kظ.
à….-
à….k;xn-
à….-
à…(kظ.
à….-
à….k
à…/
à…ظ.
à….à….
à….-
à….
à…ظ.
à….à….
à….…(k….-
à…(kظ.
à….-
à….k;xn-
à….-
à…(kظ.
à….-
à….k
à….
à…ظ.
à….à….
à….-
à….
à…ظ.
à….à….
à….…(kظ.
à….-
à….k;xn-
à….-
à…(kظ.
à….-
à….k
à….
à…ظ.
à…(kظ.
à….-
à….k;xn-
à….-
à…(kظ.
à….-
à….k
à…/
à…ظ.
à….à….
à….-
à….
à…ظ.
à….à….
à….…(kظ.
à….-
à….k;xn-
à….-
à…(kظ.
à….-
à….k
à….
à…ظ.
à….à….
à….-
à….
à…ظ.
à….à….
à….-
à….kظ.-
à….kظ.
à….-xà…).k
à….
à…ظ..à….
à….-
à….
à…ظ.
à….à….
à….-
à….kظ.-
à….kظ.
à….-
à…).k
à….
à…ظ.
à….ظ.
à….-
à….k;xn-
à….-
à…(kظ.
à….-
à….k
à….
à…ظ.
à….à….
à….-
à….
à…ظ.
à….à….
à….-
à….kظ.-
à….kظ.
à….-xà…).k
à….
à…ظ..à….
à….-
à….
à…ظ.
à….à….
à….-
à….kظ.-
à….kظ.
à….-
à…).k
à….
à…ظ.
à….

View File

@ -1,32 +0,0 @@
//===BEGIN PRIVATE DOMAINS===
//===END PRIVATE DOMAINS===
//===BEGIN PRIVATE DOMAINS===
//===END PRIVATE DOMAINS===
//===BEGIN PRIVATE DOMAINS===
//===END PRIVATE DOMAINS===
//===BEGIN PRIVATE DOMAINS===
//===END PRIVATE DOMAINS===
//===BEGIN PRIVATE DOMAINS===
//===END PRIVATE DOMAINS===
//===BEGIN PRIVATE DOMAINS===
//===END PRIVATE DOMAINS===
//===BEGIN PRIVATE DOMAINS===
//===END PRIVATE DOMAINS===
//===BEGIN PRIVATE DOMAINS===
//===END PRIVATE DOMAINS===
//===BEGIN PRIVATE DOMAINS===
//===END PRIVATE DOMAINS===
//===BEGIN PRIVATE DOMAINS===
//===END PRIVATE DOMAINS===
//===BEGIN PRIVATE DOMAINS===
//===END PRIVATE DOMAINS===
//===BEGIN PRIVATE DOMAINS===
//===END PRIVATE DOMAINS===
//===BEGIN PRIVATE DOMAINS===
//===END PRIVATE DOMAINS===
//===BEGIN PRIVATE DOMAINS===
//===END PRIVATE DOMAINS===
//===BEGIN PRIVATE DOMAINS===
//===END PRIVATE DOMAINS===
//===BEGIN PRIVATE DOMAINS===
//===END PRIVATE DOMAINS===

View File

@ -1,2 +0,0 @@
.DAFSA@PSL_jÔw»
C

View File

@ -1,16 +0,0 @@
<EFBFBD>
<EFBFBD>
<EFBFBD>
<EFBFBD>
<EFBFBD>
<EFBFBD>
<EFBFBD>
<EFBFBD>
<EFBFBD>
<EFBFBD>
<EFBFBD>
<EFBFBD>
<EFBFBD>
<EFBFBD>
<EFBFBD>
<EFBFBD>

Some files were not shown because too many files have changed in this diff Show More