--- rpms/e-smith-hosts/sme9/e-smith-hosts-2.4.0.comment_hostname_validator.patch 2015/01/18 12:10:14 1.1 +++ rpms/e-smith-hosts/sme9/e-smith-hosts-2.4.0.comment_hostname_validator.patch 2015/01/29 12:29:22 1.5 @@ -1,15 +1,20 @@ +diff -Nur e-smith-hosts-2.4.0.old8723/root/etc/e-smith/db/hosts/migrate/30sanitise_host_comment e-smith-hosts-2.4.0.bz8723/root/etc/e-smith/db/hosts/migrate/30sanitise_host_comment +--- e-smith-hosts-2.4.0.old8723/root/etc/e-smith/db/hosts/migrate/30sanitise_host_comment 1970-01-01 01:00:00.000000000 +0100 ++++ e-smith-hosts-2.4.0.bz8723/root/etc/e-smith/db/hosts/migrate/30sanitise_host_comment 2015-01-22 08:30:50.193365257 +0100 +@@ -0,0 +1,10 @@ ++{ ++ # Purge quoting chars in comments to fix bug 8723 & bug 8806 ++ foreach my $host ($DB->get_all) ++ { ++ my $comment = $host->prop('Comment'); ++ next unless $comment; ++ $comment =~ s/['"]//g; ++ $host->merge_props(Comment => $comment); ++ } ++} diff -Nur e-smith-hosts-2.4.0.old8723/root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/hostentries e-smith-hosts-2.4.0.bz8723/root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/hostentries --- e-smith-hosts-2.4.0.old8723/root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/hostentries 2015-01-18 11:25:40.356221775 +0100 +++ e-smith-hosts-2.4.0.bz8723/root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/hostentries 2015-01-18 12:57:12.694843190 +0100 -@@ -128,7 +128,7 @@ - - HOSTNAME_DESCRIPTION - -- The hostname must contain only letters, numbers, and hyphens, -+ The hostname and the comment must contain only letters, numbers, and hyphens, - and must start with a letter or number. - - @@ -271,4 +271,18 @@ MUST_BE_VALID_HOSTNAME_OR_IP Must be a valid hostname or IP number @@ -18,7 +23,7 @@ diff -Nur e-smith-hosts-2.4.0.old8723/ro + HOSTNAME_COMMENT_ERROR + + Error: unexpected characters in the comment of "{$hostname}.{$domain}". -+ The comment must contain only letters, numbers and hyphens, and must start with a letter or number. ++ The comment must contain only letters, spaces, numbers, dots, commas, undescores, hyphens and must start with a letter or number. + + + @@ -36,7 +41,7 @@ diff -Nur e-smith-hosts-2.4.0.old8723/ro my $hostname = lc $q->param('name'); my $domain = lc $q->param('domain'); my $fqdn = "$hostname.$domain"; -+ my $comment = lc $q->param('comment'); ++ my $comment = $q->param('comment'); $self->cgi->param(-name=>'name', -value=>$hostname); unless ( $hostname =~ /^[a-z0-9][a-z0-9-]*$/ ) @@ -45,7 +50,7 @@ diff -Nur e-smith-hosts-2.4.0.old8723/ro + return $self->error('HOSTNAME_VALIDATOR_ERROR'); + } + -+ unless ( $comment =~ /^[a-z0-9][a-z0-9-]*$/ ) ++ unless ( $comment =~ /^([a-zA-Z0-9][\_\.\-,A-Za-z0-9\s]*)$/ ) + { + return $self->error('HOSTNAME_COMMENT_ERROR'); }