libidn2/0002-CVE-2019-12290.patch
2020-03-18 18:33:33 +08:00

197 lines
6.8 KiB
Diff

From 019fd57f70297d216c6b80b89112307db994b74e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Tim=20R=C3=BChsen?= <tim.ruehsen@gmx.de>
Date: Tue, 9 Apr 2019 16:58:18 +0200
Subject: [PATCH 2/3] Manually create idn2_cmd.c and idn2_cmd.h due to idn2.ggo
diff -ru goo_before/src/idn2_cmd.c goo/src/idn2_cmd.c
--- goo_before/src/idn2_cmd.c 2020-03-17 23:09:46.872000000 +0800
+++ goo/src/idn2_cmd.c 2020-03-17 23:07:45.844000000 +0800
@@ -1,5 +1,5 @@
/*
- File autogenerated by gengetopt version 2.22.6
+ File autogenerated by gengetopt version 2.23
generated with the following command:
gengetopt --unamed-opts --no-handle-version --no-handle-help --set-package=idn2 --input idn2.ggo --file-name idn2_cmd
@@ -27,24 +27,25 @@
const char *gengetopt_args_info_purpose = "";
-const char *gengetopt_args_info_usage = "Usage: idn2 [OPTION]... [STRING]...";
+const char *gengetopt_args_info_usage = "Usage: idn2 [OPTION]... [FILE]...";
const char *gengetopt_args_info_versiontext = "";
const char *gengetopt_args_info_description = "";
const char *gengetopt_args_info_help[] = {
- " -h, --help Print help and exit",
- " -V, --version Print version and exit",
- " -d, --decode Decode (punycode) domain name",
- " -l, --lookup Lookup domain name (default)",
- " -r, --register Register label",
- " -T, --tr46t Enable TR46 transitional processing (default=off)",
- " -N, --tr46nt Enable TR46 non-transitional processing\n (default=off)",
- " --no-tr46 Disable TR46 processing (default=off)",
- " --usestd3asciirules Enable STD3 ASCII rules (default=off)",
- " --debug Print debugging information (default=off)",
- " --quiet Silent operation (default=off)",
+ " -h, --help Print help and exit",
+ " -V, --version Print version and exit",
+ " -d, --decode Decode (punycode) domain name",
+ " -l, --lookup Lookup domain name (default)",
+ " -r, --register Register label",
+ " -T, --tr46t Enable TR46 transitional processing (default=off)",
+ " -N, --tr46nt Enable TR46 non-transitional processing\n (default=off)",
+ " --no-tr46 Disable TR46 processing (default=off)",
+ " --usestd3asciirules Enable STD3 ASCII rules (default=off)",
+ " --no-alabelroundtrip Disable ALabel roundtrip for lookups (default=off)",
+ " --debug Print debugging information (default=off)",
+ " --quiet Silent operation (default=off)",
0
};
@@ -77,6 +78,7 @@
args_info->tr46nt_given = 0 ;
args_info->no_tr46_given = 0 ;
args_info->usestd3asciirules_given = 0 ;
+ args_info->no_alabelroundtrip_given = 0 ;
args_info->debug_given = 0 ;
args_info->quiet_given = 0 ;
}
@@ -89,6 +91,7 @@
args_info->tr46nt_flag = 0;
args_info->no_tr46_flag = 0;
args_info->usestd3asciirules_flag = 0;
+ args_info->no_alabelroundtrip_flag = 0;
args_info->debug_flag = 0;
args_info->quiet_flag = 0;
@@ -108,8 +111,9 @@
args_info->tr46nt_help = gengetopt_args_info_help[6] ;
args_info->no_tr46_help = gengetopt_args_info_help[7] ;
args_info->usestd3asciirules_help = gengetopt_args_info_help[8] ;
- args_info->debug_help = gengetopt_args_info_help[9] ;
- args_info->quiet_help = gengetopt_args_info_help[10] ;
+ args_info->no_alabelroundtrip_help = gengetopt_args_info_help[9] ;
+ args_info->debug_help = gengetopt_args_info_help[10] ;
+ args_info->quiet_help = gengetopt_args_info_help[11] ;
}
@@ -124,19 +128,25 @@
printf("\n%s\n", gengetopt_args_info_versiontext);
}
-static void print_help_common(void) {
- cmdline_parser_print_version ();
-
- if (strlen(gengetopt_args_info_purpose) > 0)
- printf("\n%s\n", gengetopt_args_info_purpose);
-
- if (strlen(gengetopt_args_info_usage) > 0)
- printf("\n%s\n", gengetopt_args_info_usage);
-
- printf("\n");
+static void print_help_common(void)
+{
+ size_t len_purpose = strlen(gengetopt_args_info_purpose);
+ size_t len_usage = strlen(gengetopt_args_info_usage);
- if (strlen(gengetopt_args_info_description) > 0)
- printf("%s\n\n", gengetopt_args_info_description);
+ if (len_usage > 0) {
+ printf("%s\n", gengetopt_args_info_usage);
+ }
+ if (len_purpose > 0) {
+ printf("%s\n", gengetopt_args_info_purpose);
+ }
+
+ if (len_usage || len_purpose) {
+ printf("\n");
+ }
+
+ if (strlen(gengetopt_args_info_description) > 0) {
+ printf("%s\n\n", gengetopt_args_info_description);
+ }
}
void
@@ -240,6 +250,8 @@
write_into_file(outfile, "no-tr46", 0, 0 );
if (args_info->usestd3asciirules_given)
write_into_file(outfile, "usestd3asciirules", 0, 0 );
+ if (args_info->no_alabelroundtrip_given)
+ write_into_file(outfile, "no-alabelroundtrip", 0, 0 );
if (args_info->debug_given)
write_into_file(outfile, "debug", 0, 0 );
if (args_info->quiet_given)
@@ -416,7 +428,9 @@
break;
};
-
+ FIX_UNUSED(stop_char);
+ FIX_UNUSED(val);
+
/* store the original value */
switch(arg_type) {
case ARG_NO:
@@ -455,10 +469,16 @@
package_name = argv[0];
+ /* TODO: Why is this here? It is not used anywhere. */
override = params->override;
+ FIX_UNUSED(override);
+
initialize = params->initialize;
check_required = params->check_required;
+
+ /* TODO: Why is this here? It is not used anywhere. */
check_ambiguity = params->check_ambiguity;
+ FIX_UNUSED(check_ambiguity);
if (initialize)
cmdline_parser_init (args_info);
@@ -484,6 +504,7 @@
{ "tr46nt", 0, NULL, 'N' },
{ "no-tr46", 0, NULL, 0 },
{ "usestd3asciirules", 0, NULL, 0 },
+ { "no-alabelroundtrip", 0, NULL, 0 },
{ "debug", 0, NULL, 0 },
{ "quiet", 0, NULL, 0 },
{ 0, 0, 0, 0 }
@@ -605,6 +626,18 @@
goto failure;
}
+ /* Disable ALabel roundtrip for lookups. */
+ else if (strcmp (long_options[option_index].name, "no-alabelroundtrip") == 0)
+ {
+
+
+ if (update_arg((void *)&(args_info->no_alabelroundtrip_flag), 0, &(args_info->no_alabelroundtrip_given),
+ &(local_args_info.no_alabelroundtrip_given), optarg, 0, 0, ARG_FLAG,
+ check_ambiguity, override, 1, 0, "no-alabelroundtrip", '-',
+ additional_error))
+ goto failure;
+
+ }
/* Print debugging information. */
else if (strcmp (long_options[option_index].name, "debug") == 0)
{
@@ -643,6 +676,7 @@
+ FIX_UNUSED(check_required);
cmdline_parser_release (&local_args_info);
@@ -680,3 +714,4 @@
cmdline_parser_release (&local_args_info);
return (EXIT_FAILURE);
}
+/* vim: set ft=c noet ts=8 sts=8 sw=8 tw=80 nojs spell : */