Signed-off-by: Stefan Schantl <[email protected]>
---
 html/cgi-bin/lldp.cgi | 14 +++++++++++---
 1 file changed, 11 insertions(+), 3 deletions(-)

diff --git a/html/cgi-bin/lldp.cgi b/html/cgi-bin/lldp.cgi
index 755d3dc46..9e30faa92 100644
--- a/html/cgi-bin/lldp.cgi
+++ b/html/cgi-bin/lldp.cgi
@@ -46,8 +46,13 @@ if ($cgiparams{"ACTION"} eq $Lang::tr{'save'}) {
                $settings{'ENABLED'} = $cgiparams{'ENABLED'};
        }
 
-       # XXX Validate the description
-       $settings{"DESCRIPTION"} = $cgiparams{"DESCRIPTION"};
+       # Validate the description
+       if (($cgiparams{"DESCRIPTION"} eq "") || ($cgiparams{"DESCRIPTION"} =~ 
/^[A-Za-z0-9_\-]+$/)) {
+               $settings{"DESCRIPTION"} = $cgiparams{"DESCRIPTION"};
+       } else {
+               # Add error message about invalid characters in description.
+               push(@errormessages, "$Lang::tr{'lldp invalid description'}");
+       }
 
        # Don't continue on error
        goto MAIN if (scalar @errormessages);
@@ -81,6 +86,9 @@ MAIN:
                "ENABLED" => ($settings{"ENABLED"} eq "on") ? "checked" : "",
        );
 
+       # Description field, defaults to CGI input otherwise use configured 
description.
+       my $description = $cgiparams{'DESCRIPTION'} // $settings{'DESCRIPTION'};
+
        print <<END;
                <form method="POST" action="">
                        <table class="form">
@@ -94,7 +102,7 @@ MAIN:
                                <tr>
                                        <td>$Lang::tr{'description'}</td>
                                        <td>
-                                               <input type="text" 
name="DESCRIPTION" value="$settings{'DESCRIPTION'}" />
+                                               <input type="text" 
name="DESCRIPTION" value="$description" />
                                        </td>
                                </tr>
 
-- 
2.47.3


Reply via email to