Compare commits

...

60 Commits

Author SHA1 Message Date
George Sokianos 92d3ef3d19 Changes in the Makefile.os4 to fully compile 2023-01-11 00:23:36 +00:00
George Sokianos 9098ed0e31 Added OS4 makefile 2023-01-10 23:51:34 +00:00
Chun-wei Fan c47cf796fc tools/psl.c: Fix build on Windows
localtime_r() is not available on Windows but a more-secure variant
of localtime(), localtime_s() is provided on Windows.

Define localtime_r() on Windows as its arguments are reversed as compared
to localetime_s(), to achive more or less the same purpose.
2022-12-27 11:09:14 +01:00
Chun-wei Fan 86923341a3 meson: Clean up ICU dependency search
Since we are using Meson 0.60.0 or later, use CMake to help us find ICU,
which is cleaner and more comprehensive, and allows us to use libicu_dep
= depedency(...) even on Visual Studio, where CMake will find the
appropriate ICU headers and libraries for us internally.

Sadly, due to peculiarities, we have to live with the warning that comes
up as we needed to look for ICU in the older method instead of the
recommended modules: ['ICU::uc'] method.
2022-12-27 11:07:54 +01:00
Tim Rühsen 927b202c69 Release v0.21.2 2022-12-26 13:46:23 +01:00
Tim Rühsen f2bdc1709d tools/psl.c: Use localtime_r instead of localtime 2022-12-09 13:38:14 +01:00
Tim Rühsen 5eaa8b4796 CI: Install missing autopoint 2022-12-09 13:28:57 +01:00
Tim Rühsen c03f48aa24 Update PSL 2022-12-09 13:28:57 +01:00
LGTM Migrator 4cb5c0cea0 Add CodeQL workflow for GitHub code scanning 2022-12-09 13:10:11 +01:00
Matt Turner 182bfd0e5f Use AC_SYS_LARGEFILE
Ensures that calls to fopen() and stat() can handle largefiles.
2022-11-06 19:31:50 +01:00
Cœur c546aafc0a Fix "Although the value stored to 'pos' is used in the enclosing expression, the value is never actually read from 'pos'" 2022-10-15 19:06:05 +02:00
Eli Schwartz b9503b64c3 meson: fix regression that made it impossible to build
In commit aa4909766c an option was
modified and changed its type from a list of possible strings to a
true/false value.

However, the build wasn't updated to correspond to that change, so it
didn't logically work -- and Meson even threw a type error saying you
cannot compare strings to booleans.

The actual change was basically "do not use this option anymore except
to pass a macro to the source file and embed the data at all". So we can
simply get rid of a bunch of complex dependency conditionals.

Fixes #185
2022-07-26 12:16:13 +02:00
Tim Rühsen a7b63cbb35
Merge pull request #183 from neheb/patch-1
meson: switch iconv to meson's handling
2022-06-10 15:54:38 +02:00
Tim Rühsen cf6878fd24 Update PSL submodule 2022-06-10 15:51:21 +02:00
Tim Rühsen 7a4cbdd386
Merge pull request #181 from hwti/builtin-option
Make builtin option independant from runtime one
2022-06-10 15:49:58 +02:00
Rosen Penev b27d4b69ce
meson: switch iconv to meson's handling
Fixes compilation under OpenWrt.
2022-06-09 17:01:18 -07:00
Loïc Yhuel aa4909766c Make builtin option independant from runtime one
Since commit deabd4a, psl2c has been replaced by psl-make-dafsa.
The builtin PSL data is always generated the same way, and the value of the builtin
configure option does not matter anymore.

The built-in data is now embedded by default (instead of the previous "auto"), unless
explicitly disabled by --disable-builtin/-Dbuiltin=false.

When not using an run-time runtime IDNA library (--disable-runtime/-Druntime=no), libpsl can
now include the built-in data without any build-time dependency.
2022-06-06 22:48:32 +02:00
Tim Rühsen 6a82bcbc2a Fix comments from C++ to C/C++ in psl-make-dafsa 2022-06-06 12:32:17 +02:00
Tim Rühsen 664f3dc852
Merge pull request #180 from eugmes/remove-macro
Remove definition of _GCC_VERSION_AT_LEAST
2022-02-18 19:39:29 +01:00
Ievgenii Meshcheriakov 9d39483d42 Remove definition of _GCC_VERSION_AT_LEAST
This macro is unused and is the only piece for compiler-specific
code in this file.
2022-02-18 16:57:35 +01:00
Tim Rühsen 67aadbe967 Remove obsolete fuzzer builds from fuzz/run-clang 2022-01-16 19:36:07 +01:00
Tim Rühsen 54038ae4d9 Require gettext version 0.19.3 2022-01-16 19:14:33 +01:00
Tim Rühsen 97f8ae52c1 Update fuzzing tools and build scripts 2022-01-16 12:59:23 +01:00
Tim Rühsen 21d2d51911 Avoid 'NULL + 1' as it is UB 2022-01-16 12:55:51 +01:00
Tim Rühsen 55d0ae04de Avoid 8bit overflow in is_public_suffix() 2022-01-16 12:51:33 +01:00
Tim Rühsen 042c586371 Update corpora from OSS-FUZZ 2022-01-16 12:08:01 +01:00
Tim Rühsen 1023a9ad12 Fix stack buffer overflow WRITE 1 in domain_to_punycode()
Reported-by: oss-fuzz (issue 39424 and issue 39226)

The affected code would only be built into the library when
configured to build without any IDNA library.
2022-01-15 22:38:36 +01:00
Tim Rühsen 044b5ed5d4 Bump gettext version to 0.19.3 2022-01-15 14:26:06 +01:00
Tim Rühsen be03c8ef97 Update m4/ax_check_compile_flag.m4 2022-01-15 14:18:37 +01:00
Tim Rühsen 864d938f39 Add brackets for AC_INIT argument 2022-01-15 14:18:18 +01:00
Tim Rühsen 5f796be788
Merge pull request #177 from equeim/meson-static
meson: automatically add PSL_STATIC define when building Windows static library and fix tests/tools link errors
2022-01-15 13:54:28 +01:00
Alexey Rochev 1159bd46c3 meson: fix tests/tools link errors when building shared library for Windows
We need to link them with ws2_32 explicitly.
2022-01-13 01:55:03 +03:00
Alexey Rochev ba6f11f751 meson: automatically add PSL_STATIC define when building Windows static library 2022-01-13 01:54:38 +03:00
Tim Rühsen 4a10a1698b
Merge pull request #179 from equeim/meson-libicu-static
Use C++ linker when building with libicu
2022-01-08 19:43:10 +01:00
Alexey Rochev 02c8476071 Use C++ linker when building with libicu
ICU is a C++ library, event though it has C interface.
Therefore we have to use C++ linker when linking with it.
2022-01-07 01:12:17 +03:00
Tim Rühsen 88a75d4711
Merge pull request #178 from equeim/tests-libicu
Fix Meson build
2022-01-06 19:29:39 +01:00
Alexey Rochev 5a29a64444 Remove libicu includes from test-registrable-domain.c
It doesn't seem like they are used,
and they cause build failures with meson.
2022-01-06 03:03:43 +03:00
Alexey Rochev 43fc4f0631 meson: bring back libiconv dependency lookup 2022-01-06 03:03:43 +03:00
Alexey Rochev 0ecc788797 Remove meson.build generation and separate project and library versions in their own files
Project and library version are now stored in
version.txt and libtool_version_info.txt files respectively.
Both autotools and meson get their versioning information from this files.
Meson additionally automatically transforms library version
from libtool's own format.

Also raise meson version requirement from 0.47 to 0.57 which
is required by these changes.
2022-01-06 03:02:33 +03:00
Tim Rühsen 4afd9e705b
Merge pull request #174 from rockdaboot/tmp-wsa-startup
Add WSAStartup() for Windows psl tool and tests.
2021-11-26 19:18:19 +01:00
Tim Rühsen f5035b854b Add WSAStartup() for Windows psl tool and tests.
As reported at https://github.com/rockdaboot/libpsl/issues/173,
psl_is_cookie_domain_acceptable() doesn't work properly without
WSAStartup() on Windows.

Co-authored-by: gvanem@yahoo.no
2021-11-26 19:10:37 +01:00
Tim Rühsen b2625f93f2 Fix write buffer overflow by 1 in domain_to_punycode()
This issue has been triggered after the previous commit increased
the size of label_buf.

It has been found by OSS-Fuzz (issue 39226).
The testcase is included into the unit tests.
2021-09-26 18:02:04 +02:00
Tim Rühsen 304ca77522 Increase label size from 48 -> 128 2021-09-18 12:24:45 +02:00
Tim Rühsen 50ff7f2edf Update upstream PSL 2021-09-18 12:22:16 +02:00
Tim Rühsen 6ce6c4e399
Merge pull request #168 from nacho/nacho/gtk-doc
meson: build reference manual with gtk_doc
2021-01-31 17:38:23 +01:00
Ignacio Casal Quinteiro a1b91e86e4 meson: build reference manual with gtk_doc 2021-01-26 12:38:01 +01:00
Tim Rühsen 6f4f6d766c Replace obsolete AC_HELP_STRING with AS_HELP_STRING 2021-01-16 18:16:35 +01:00
Tim Rühsen 99e7e6a2af
Merge pull request #166 from quink-black/fix-build-iconv
Add libiconv dep to meson build again
2021-01-16 18:07:35 +01:00
Tim Rühsen 44443ad3a4 Update PSL data from upstream 2021-01-16 17:56:23 +01:00
Tim Rühsen fef1568bef
Merge pull request #167 from SteelPangolin/meson-install-more
Meson: install libpsl man page, DAFSA builder
2021-01-16 17:46:39 +01:00
Erica Ehrhardt 62081a021f Meson: install libpsl man page, DAFSA builder
Partially addresses issue #136,
at least when building from a distribution tarball.
2021-01-14 17:13:46 -08:00
Zhao Zhili 5b63816e82 Add libiconv dep to meson build again
Build success on macOS and ubuntu.
2021-01-07 20:59:17 +08:00
Tim Rühsen 6a5e41edc5
Merge pull request #164 from tp-m/fix-meson-build
meson: fix build
2020-10-26 21:27:11 +01:00
Tim-Philipp Müller 8e02c2c4f1 meson: fix build
src/meson.build:19:0: ERROR: Unknown variable "libiconv".
2020-10-26 10:46:53 +00:00
Tim Rühsen d61859f4b5
Merge pull request #163 from rockdaboot/tmp-doc-buildfromtarball
Add 'Building from tarball' to README.md
2020-10-25 11:56:20 +01:00
Tim Rühsen 5ccf1e85fe Add 'Building from tarball' to README.md 2020-10-25 11:55:17 +01:00
Tim Rühsen 03df58fc96
Merge pull request #162 from thinkski/master
Add libiconv dep to meson build
2020-09-21 16:22:17 +02:00
Chris Hiszpanski 079e8d0f6c Add libiconv dep to meson build 2020-09-20 04:57:12 -07:00
Tim Rühsen 17cce94216
Merge pull request #158 from kloczek/master
Install psl executable and man pages.
2020-08-05 20:06:12 +02:00
Tomasz Kłoczko 47bab910ee Install psl executable and man pages.
Resolve #156
2020-08-05 18:38:11 +01:00
261 changed files with 70157 additions and 1471 deletions

53
.github/workflows/codeql.yml vendored Normal file
View File

@ -0,0 +1,53 @@
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,4 +1,4 @@
Copyright (C) 2014-2018 Tim Rühsen
Copyright (C) 2014-2022 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-2015 Tim Rühsen
Copyright (C) 2014-2022 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"),

35
Makefile.os4 Normal file
View File

@ -0,0 +1,35 @@
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/

15
NEWS
View File

@ -1,4 +1,17 @@
Copyright (C) 2014-2020 Tim Rühsen
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

View File

@ -106,6 +106,24 @@ 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
-----------------

View File

@ -1,5 +1,4 @@
AC_INIT([libpsl], [0.21.1], [tim.ruehsen@gmx.de], [libpsl], [https://github.com/rockdaboot/libpsl])
AC_INIT([libpsl],[m4_normalize(m4_include(version.txt))],[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])
@ -15,6 +14,8 @@ 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
@ -34,7 +35,8 @@ AC_CONFIG_FILES([include/libpsl.h])
# Gettext
#
AM_GNU_GETTEXT([external],[need-ngettext])
AM_GNU_GETTEXT_VERSION([0.18.1])
AM_GNU_GETTEXT_VERSION([0.19.3])
AM_GNU_GETTEXT_REQUIRE_VERSION([0.19.3])
#
# check for gtk-doc
@ -57,7 +59,7 @@ fi
# enable creation of man pages
#
AC_ARG_ENABLE([man],
[AC_HELP_STRING([--enable-man], [generate man pages [default=auto]])],
[AS_HELP_STRING([--enable-man], [generate man pages [default=auto]])],
[
if test "$enable_man" = yes; then
AC_PATH_PROG([XSLTPROC], [xsltproc])
@ -74,6 +76,14 @@ 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)])],
[
@ -91,6 +101,7 @@ 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 ])
@ -99,6 +110,7 @@ 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
@ -115,7 +127,7 @@ 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], [8:3:3])
AC_SUBST([LIBPSL_SO_VERSION], m4_normalize(m4_include([libtool_version_info.txt])))
AC_SUBST([LIBPSL_VERSION], $VERSION)
# Check for enable/disable runtime PSL data
@ -150,22 +162,14 @@ AC_ARG_ENABLE(runtime,
# Check for enable/disable builtin PSL data
AC_ARG_ENABLE(builtin,
[
--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)
--enable-builtin Generate built-in PSL data
--disable-builtin Do not generate built-in PSL data
], [
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])
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
elif test "$enableval" = "no"; then
enable_builtin=no
else
@ -173,10 +177,14 @@ AC_ARG_ENABLE(builtin,
fi
], [
# this is the default if neither --enable-builtin nor --disable-builtin were specified
enable_builtin=auto
enable_builtin=yes
])
if test "$enable_runtime" = "libidn2" -o "$enable_builtin" = "libidn2" -o "$enable_runtime" = "auto" -o "$enable_builtin" = "auto"; then
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
# Check for libidn2
PKG_CHECK_MODULES([LIBIDN2], [libidn2], [
HAVE_LIBIDN2=yes
@ -187,7 +195,7 @@ if test "$enable_runtime" = "libidn2" -o "$enable_builtin" = "libidn2" -o "$enab
], [
AC_SEARCH_LIBS(idn2_lookup_u8, idn2, HAVE_LIBIDN2=yes,
[
if test "$enable_runtime" = "libidn2" -o "$enable_builtin" = "libidn2"; then
if test "$enable_runtime" = "libidn2"; then
AC_MSG_ERROR(You requested libidn2 but it is not installed.)
fi
], -lunistring)
@ -198,14 +206,10 @@ if test "$enable_runtime" = "libidn2" -o "$enable_builtin" = "libidn2" -o "$enab
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_builtin" = "libicu" -o "$enable_runtime" = "auto" -o "$enable_builtin" = "auto"; then
if test "$enable_runtime" = "libicu" -o "$enable_runtime" = "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
@ -225,7 +229,7 @@ if test "$enable_runtime" = "libicu" -o "$enable_builtin" = "libicu" -o "$enable
[[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" -o "$enable_builtin" = "libicu"; then
if test "$enable_runtime" = "libicu"; then
AC_MSG_ERROR(You requested libicu but it is not installed.)
fi
LIBS=$OLDLIBS
@ -237,14 +241,10 @@ if test "$enable_runtime" = "libicu" -o "$enable_builtin" = "libicu" -o "$enable
enable_runtime=libicu
AC_DEFINE([WITH_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_builtin" = "libidn" -o "$enable_runtime" = "auto" -o "$enable_builtin" = "auto"; then
if test "$enable_runtime" = "libidn" -o "$enable_runtime" = "auto"; then
# Check for libidn
PKG_CHECK_MODULES([LIBIDN], [libidn], [
HAVE_LIBIDN=yes
@ -255,7 +255,7 @@ if test "$enable_runtime" = "libidn" -o "$enable_builtin" = "libidn" -o "$enable
], [
AC_SEARCH_LIBS(idna_to_ascii_8z, idn, HAVE_LIBIDN=yes,
[
if test "$enable_runtime" = "libidn" -o "$enable_builtin" = "libidn"; then
if test "$enable_runtime" = "libidn"; then
AC_MSG_ERROR(You requested libidn but it is not installed.)
fi
])
@ -266,10 +266,6 @@ if test "$enable_runtime" = "libidn" -o "$enable_builtin" = "libidn" -o "$enable
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([BUILTIN_GENERATOR_LIBIDN], [1], [generate PSL data using libidn])
fi
fi
fi
@ -277,9 +273,6 @@ 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()
@ -293,10 +286,7 @@ 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([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)
AM_CONDITIONAL([ENABLE_BUILTIN], test "x$enable_builtin" = "xyes")
# 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], [])
@ -349,19 +339,19 @@ fi
# Check for distribution-wide PSL file
AC_ARG_WITH(psl-distfile,
AC_HELP_STRING([--with-psl-distfile=[PATH]], [path to distribution-wide PSL file]),
AS_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,
AC_HELP_STRING([--with-psl-file=[PATH]], [path to PSL file]),
AS_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,
AC_HELP_STRING([--with-psl-testfile=[PATH]], [path to PSL test file]),
AS_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)
@ -387,7 +377,6 @@ AC_CONFIG_FILES([Makefile
tests/Makefile
docs/libpsl/Makefile docs/libpsl/version.xml
libpsl.pc:libpsl.pc.in
meson.build
msvc/Makefile
msvc/config.h.win32
msvc/config-msvc.mak])
@ -411,4 +400,5 @@ 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-builtin=libicu" \
"--enable-runtime=libidn2 --enable-builtin=libidn2" \
"--enable-runtime=libidn --enable-builtin=libidn" \
"--disable-runtime --enable-builtin=libicu"; do
"--enable-runtime=libicu" \
"--enable-runtime=libidn2" \
"--enable-runtime=libidn" \
"--disable-runtime"; 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 --enable-builtin=libidn2 --prefix=$INSTALLDIR
./configure --build=x86_64-pc-linux-gnu --host=$PREFIX --enable-shared --disable-gtk-doc --enable-runtime=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 +=
EXTRA_DIST += meson.build
# Files not to distribute
# for --rebuild-types in $(SCAN_OPTIONS), e.g. $(DOC_MODULE).types

20
docs/libpsl/meson.build Normal file
View File

@ -0,0 +1,20 @@
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,15 +1,18 @@
AM_CFLAGS = $(WERROR_CFLAGS) $(WARN_CFLAGS)
AM_CPPFLAGS = -I$(top_srcdir)/include -I$(srcdir) -DSRCDIR=\"$(abs_srcdir)\" -DTEST_RUN
AM_CPPFLAGS = -I$(top_srcdir)/include -I$(srcdir) -DSRCDIR=\"$(abs_srcdir)\"
#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.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
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)
PSL_TESTS = \
libpsl_icu_fuzzer$(EXEEXT) \
libpsl_icu_load_fuzzer$(EXEEXT) \
@ -18,9 +21,9 @@ else
if WITH_LIBIDN2
XLIBS = -lidn2 -lunistring
XTYPE = _idn2
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
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)
PSL_TESTS = \
libpsl_idn2_fuzzer$(EXEEXT) \
libpsl_idn2_load_fuzzer$(EXEEXT) \
@ -29,9 +32,9 @@ else
if WITH_LIBIDN
XLIBS = -lidn -lunistring
XTYPE = _idn
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
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)
PSL_TESTS = \
libpsl_idn_fuzzer$(EXEEXT) \
libpsl_idn_load_fuzzer$(EXEEXT) \
@ -39,9 +42,9 @@ if WITH_LIBIDN
else
XLIBS =
XTYPE =
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
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)
PSL_TESTS = \
libpsl_fuzzer$(EXEEXT) \
libpsl_load_fuzzer$(EXEEXT) \
@ -50,7 +53,16 @@ endif
endif
endif
check_PROGRAMS = $(PSL_TESTS)
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
@ -61,7 +73,6 @@ 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
@ -69,7 +80,7 @@ clean-local:
fuzz-coverage: $(PSL_TESTS)
find . -name '*_fuzzer' -exec ./coverage.sh '{}' ';'
CXX ?= clang-5.0
CXX ?= clang
CXXFLAGS ?= $(CFLAGS)
oss-fuzz:

View File

@ -12,24 +12,58 @@ 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-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
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
make -j$(nproc)
cd fuzz
# build and run libpsl_fuzzer
# 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:
@ -67,7 +101,7 @@ directory.
# Clang CFI instrumentation
```
CC=clang-5.0 CFLAGS="-B/usr/bin/gold -O0 -fsanitize=cfi -flto -fvisibility=default -fno-sanitize-trap=all" ./configure
CC=clang 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-2018 Tim Ruehsen
* Copyright(c) 2017-2022 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,15 +1,8 @@
#!/bin/sh -eu
# 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
# As a first step see README.md and follow the steps under "Running a fuzzer using clang".
#
# 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.
@ -20,13 +13,20 @@ 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}.new
cp -p ${fuzzer}.in/* ${fuzzer}.new
gsutil -m rsync gs://${project}-corpus.clusterfuzz-external.appspot.com/libFuzzer/${fuzzer} ${fuzzer}.new
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 ..)
# create fuzzer target
BUILD_ONLY=1 ./run-clang.sh ${fuzzer}
@ -35,8 +35,9 @@ BUILD_ONLY=1 ./run-clang.sh ${fuzzer}
./${fuzzer} -merge=1 ${fuzzer}.in ${fuzzer}.new
# now clear .new dir and put all corpora there
rm -f ${fuzzer}.new/*
mv ${fuzzer}.in/* ${fuzzer}.new
rm -rf ${fuzzer}.new
mv ${fuzzer}.in ${fuzzer}.new
mkdir ${fuzzer}.in
# now merge again (optimizes number of corpora)
./${fuzzer} -merge=1 ${fuzzer}.in ${fuzzer}.new

View File

@ -1,5 +1,5 @@
/*
* Copyright(c) 2017-2018 Tim Ruehsen
* Copyright(c) 2017-2022 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,5 +1,5 @@
/*
* Copyright(c) 2017-2018 Tim Ruehsen
* Copyright(c) 2017-2022 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 @@
coííý

View File

@ -0,0 +1 @@
<EFBFBD>xn--tda.cí

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -0,0 +1 @@
<01>CC

View File

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

View File

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

View File

@ -0,0 +1 @@
<02>C|.c

View File

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

View File

@ -1,5 +1,5 @@
/*
* Copyright(c) 2017-2018 Tim Ruehsen
* Copyright(c) 2017-2022 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,38 +0,0 @@
.
иИ.3
иИ.
аИ.
кИ.кИ.
иИ.
иИ..
иИ.5
иИ.
аИ.
кИ.кИ
.иИ.
и.
иИ.И.
иИ.3
иИ.
а<EFBFBD>.
кИ.
иИ.
иИ.
иИ.
иИ.
иИ
иИ.
иИ.
и.3
иИ.
аИ.
кИ.
иМ.
аИ.
кИ.
иИ.
И.
иИ.
иИ.
иИ.
иИ.

View File

@ -0,0 +1,32 @@
Ƽ.˸.Ƽ.˸.Ǽ.˸@.ü.˸.ü.ȹ.ü.󠁸ü.Ȼ+.ü*..<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

@ -0,0 +1,33 @@
(!
公.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

@ -0,0 +1,31 @@
//===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

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

View File

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

View File

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

View File

@ -1,26 +0,0 @@
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

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

View File

@ -1,148 +0,0 @@
;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

@ -0,0 +1,32 @@
//===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

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

View File

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

View File

@ -0,0 +1,2 @@
ț.ü.¼.ȼ.ü.ü.ü.¼.ȼ.<2E><>.ü.Ǽ.ü.ȼ.Ƚ.üK
ȼ.ü.¼.ȼ.ü.¼.ȼ.<2E><>.ü.Ǽ.¼.ȼ.ü.ü.ü.¼j

View File

@ -1,9 +0,0 @@
...............................................
................................................
................................................
..............<2E>.................................
...<2E><>...........................................
................................................
................................................
.................................................

View File

@ -0,0 +1,8 @@
ټy.jÜ.ü.ȼ.)ü.ȑ.ü.ȼc.jÜ.ü.ȼ.з.ȼ.Züؿܷ
ټy.jÜ.ü.ȼ.)ü.ȼ.ü.ȼc.jÜ.ü.ȼ.и.ȼ.Züؿܷ
ټy.jÜ.ü.ȼ.)ü.ȼ.ü.ȼc.jÜ.ý.ȼ.и.ȼ.Z¼ؿܷ
ټy.jÜ.ü.ȼ.)ü.ȼ.ü.ȼ).jÛ.ü.ȼ.и.ȼ.Züؿܷ
ټy.jÜ.ü.ȼ.0ü.ȼ.ü.ȼc.jÜ.ü.ȼ.и.ȼ.Züؿܷ
ټy.jÜ.ü.ȼ.)ü.ȼ.ü.ȼc.jÜ.ü.ȼ.и.ȼ.Züؿܷ
ټy.jÜ.ü.ȼ.)ü.ȼ.ü.ȼc.jÜ.ý.ȼ.и.ȼ.Züؿܷ
ټy.jÜ.ļ.ȼ.)ü.ȼ.ü.ȼc.jÜ.ü.ȼ.и.ȼ.ZǼؿܧ

View File

@ -0,0 +1 @@
ȼ.ü.ü.ȼ.ü.ü.ȼ.ü.ȼ.ü.ü.ȼ.ü.ü.ü.ü

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