Fix showing echelon information. It needs unescaped input
[mirror/userdir-ldap-cgi.git] / search.cgi
index e3eb882..dcab35b 100755 (executable)
@@ -117,14 +117,18 @@ if (!$dosearch) {
   # Format the output....
   foreach $dn (sort {$entries->{$a}->{sn}->[0] <=> $entries->{$b}->{sn}->[0]} keys(%$entries)) {
     my $ok = 0;
+    # These are local variables.. i have enough global vars as it is... <sigh>
+    my ($ufdn, $login, $name, $icquin, $jabberjid, $email, $fingerprint,
+       $address, $latlong, $vacation, $created, $modified, $lastseen, $gender) = undef;
+
+    # Last seen information (Echelon)
+    $lastseen = &Util::FormatLastSeen($entries->{$dn}->{"activity-pgp"}->[0],
+                                      $entries->{$dn}->{"activity-from"}->[0]);
+
     $data = $entries->{$dn};
     for my $key (keys %{$data}) {
       @{$data->{$key}} = map { CGI::escapeHTML($_); } @{$data->{$key}};
     }
-
-    # These are local variables.. i have enough global vars as it is... <sigh>
-    my ($ufdn, $login, $name, $icquin, $jabberjid, $email, $fingerprint,
-       $address, $latlong, $vacation, $created, $modified, $lastseen, $gender) = undef;
     
     $ufdn = $dn; # Net::LDAP does not have a dn2ufn function, but this is close enough :)
     
@@ -179,10 +183,6 @@ if (!$dosearch) {
     $modified = &Util::FormatTimestamp($data->{modifytimestamp}->[0]);
     $created =  &Util::FormatTimestamp($data->{createtimestamp}->[0]);
 
-    # Last seen information (Echelon)
-    $lastseen = &Util::FormatLastSeen($data->{"activity-pgp"}->[0],
-                                      $data->{"activity-from"}->[0]);
-
     # Link in the debian login id 
     $login = $data->{uid}->[0];
     $login = "$login";