dns.cgi: Fixes bug#12395 - German umlauts not correctly displayed in remarks

Message ID 20240228133526.6757-1-adolf.belka@ipfire.org
State Superseded
Commit 7c6ff5ff12331a53f416080a44c8d6145e78bfac
Headers
Series dns.cgi: Fixes bug#12395 - German umlauts not correctly displayed in remarks |

Commit Message

Adolf Belka Feb. 28, 2024, 1:35 p.m. UTC
  - If Freifunk München e.V. is entered as a remark it gets converted to
   Freifunk München e.V.
- This is because cleanhtml is used on the remark text before saving it to the file  and
   the HTML::Entities::encode_entities command that is run on that remark text encodes all
   higher bit characters as unsafe characters and replaces them with their HTML entity
   representation.
- Have tested out the remark with a range of different characters with diacritical marks
   and all of the ones tested were re-written.
- The use of the cleanhtml makes sense when used on URL's or on text that is going to be
   printed as part of the HTML code for a page but it doesn't seem to make sense for text
   used in a remark.
- The cleanhtml function is only used on the remark text in dns.cgi and not on any other
   entries on the page.
- Removing the call to the cleanhtml function results in the German umlauts being printed
   in the remark section.
- Many of the WUI pages have the cleanhtml function used on remark or comment text.
- fwhosts.cgi does not use cleanhtml anywhere. So all its remark sections work with
   characters with diacritical marks.
- If this patch is accepted, I will then submit patches for the other WUI pages where
   characters with diacritical marks are re-written in remark or comment sections.

Fixes: Bug#12395
Tested-by: Adolf Belka <adolf.belka@ipfire.org>
Signed-off-by: Adolf Belka <adolf.belka@ipfire.org>
---
 html/cgi-bin/dns.cgi | 2 --
 1 file changed, 2 deletions(-)
  

Comments

Michael Tremer Feb. 28, 2024, 4:11 p.m. UTC | #1
Thank you for this patch.

Indeed we only need to escape once.

-Michael

> On 28 Feb 2024, at 13:35, Adolf Belka <adolf.belka@ipfire.org> wrote:
> 
> - If Freifunk München e.V. is entered as a remark it gets converted to
>   Freifunk München e.V.
> - This is because cleanhtml is used on the remark text before saving it to the file  and
>   the HTML::Entities::encode_entities command that is run on that remark text encodes all
>   higher bit characters as unsafe characters and replaces them with their HTML entity
>   representation.
> - Have tested out the remark with a range of different characters with diacritical marks
>   and all of the ones tested were re-written.
> - The use of the cleanhtml makes sense when used on URL's or on text that is going to be
>   printed as part of the HTML code for a page but it doesn't seem to make sense for text
>   used in a remark.
> - The cleanhtml function is only used on the remark text in dns.cgi and not on any other
>   entries on the page.
> - Removing the call to the cleanhtml function results in the German umlauts being printed
>   in the remark section.
> - Many of the WUI pages have the cleanhtml function used on remark or comment text.
> - fwhosts.cgi does not use cleanhtml anywhere. So all its remark sections work with
>   characters with diacritical marks.
> - If this patch is accepted, I will then submit patches for the other WUI pages where
>   characters with diacritical marks are re-written in remark or comment sections.
> 
> Fixes: Bug#12395
> Tested-by: Adolf Belka <adolf.belka@ipfire.org>
> Signed-off-by: Adolf Belka <adolf.belka@ipfire.org>
> ---
> html/cgi-bin/dns.cgi | 2 --
> 1 file changed, 2 deletions(-)
> 
> diff --git a/html/cgi-bin/dns.cgi b/html/cgi-bin/dns.cgi
> index 0a34d3fd6..f3dd5c7a9 100644
> --- a/html/cgi-bin/dns.cgi
> +++ b/html/cgi-bin/dns.cgi
> @@ -141,8 +141,6 @@ if (($cgiparams{'SERVERS'} eq $Lang::tr{'save'}) || ($cgiparams{'SERVERS'} eq $L
> 
> # Go further if there was no error.
> if ( ! $errormessage) {
> - # Check if a remark has been entered.
> - $cgiparams{'REMARK'} = &Header::cleanhtml($cgiparams{'REMARK'});
> 
> my %dns_servers = ();
> my $id;
> -- 
> 2.44.0
>
  

Patch

diff --git a/html/cgi-bin/dns.cgi b/html/cgi-bin/dns.cgi
index 0a34d3fd6..f3dd5c7a9 100644
--- a/html/cgi-bin/dns.cgi
+++ b/html/cgi-bin/dns.cgi
@@ -141,8 +141,6 @@  if (($cgiparams{'SERVERS'} eq $Lang::tr{'save'}) || ($cgiparams{'SERVERS'} eq $L
 
 	# Go further if there was no error.
 	if ( ! $errormessage) {
-		# Check if a remark has been entered.
-		$cgiparams{'REMARK'} = &Header::cleanhtml($cgiparams{'REMARK'});
 
 		my %dns_servers = ();
 		my $id;