[Fedora-directory-commits] adminserver/admserv/cgi-src40 config.c, 1.14, 1.15 getport.c, 1.6, 1.7 htmladmin.c, 1.9, 1.10 migrateConfig.c, 1.7, 1.8 restartsrv.c, 1.8, 1.9 sec-activate.c, 1.10, 1.11 security.c, 1.14, 1.15 setport.c, 1.6, 1.7 statpingserv.c, 1.6, 1.7 ugdsconfig.c, 1.10, 1.11 viewdata.c, 1.8, 1.9 viewlog.c, 1.10, 1.11

Richard Allen Megginson (rmeggins) fedora-directory-commits at redhat.com
Mon Jul 14 20:00:05 UTC 2008


Author: rmeggins

Update of /cvs/dirsec/adminserver/admserv/cgi-src40
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv26918/adminserver/admserv/cgi-src40

Modified Files:
	config.c getport.c htmladmin.c migrateConfig.c restartsrv.c 
	sec-activate.c security.c setport.c statpingserv.c 
	ugdsconfig.c viewdata.c viewlog.c 
Log Message:
Reviewed by: nkinder (Thanks!)
Branch: HEAD
Fix Description: I changed security to get the security file directory for the directory server from cn=config from that directory server.  Unfortunately, I didn't take into consideration that the CGI might have to use LDAPS to connect.  If you have checked the Use SSL for Console button in the console when configuring that directory server for SSL, the CGIs will attempt to use LDAPS.  In this case, there were several problems:
1) NSS was not initialized - need to use the admin server key/cert db to talk LDAPS to the directory server
2) When I did do the NSS init, it failed because the admin server key/cert db did not exist, and the directory was not writable.
3) I needed to shutdown NSS so that the key/cert db for the directory server itself could be opened in order to get its contents
The consequences of this are that now, when you attempt to use NSS for the first time, if the key/cert databases do not exist, they will be created empty.  If the user sets up the directory server for SSL, and tells the console to use SSL with this directory server, the user will have to install the CA certificate in the admin server key/cert db, so that the console and admin CGIs can talk to that directory server using LDAPS.
I changed all of the admin server CGIs to properly initialize NSS in case they too needed to speak LDAPS for some reason.  I also cleaned up several compiler warnings in the admin server CGIs.
I believe this is also the same problem as https://bugzilla.redhat.com/show_bug.cgi?id=430499
Platforms tested: RHEL5, Fedora 8, Fedora 9
Flag Day: no
Doc impact: no
QA impact: Will need to test various console interactions with SSL with admin server and directory server.
New Tests integrated into TET: none



Index: config.c
===================================================================
RCS file: /cvs/dirsec/adminserver/admserv/cgi-src40/config.c,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -r1.14 -r1.15
--- config.c	15 Nov 2007 17:32:22 -0000	1.14
+++ config.c	14 Jul 2008 20:00:02 -0000	1.15
@@ -148,8 +148,6 @@
   char           *localAdmin = 0;
   char           *binddn = 0;
   char           *bindpw = 0;
-  char           *newValue = 0;
-  char           *portVal = 0;
   char           **inputs = 0;
   char           *operation = 0;
   char           *qs = 0;
@@ -263,7 +261,7 @@
 
   adminfo = admldapBuildInfo(configdir, &rv);
 
-  errorCode = ADMSSL_InitSimple(configdir, secdir, 0);
+  errorCode = ADMSSL_InitSimple(configdir, secdir, 1);
   if (errorCode) {
     if (i18nResource) 
       rpt_err(APP_ERROR,
@@ -402,7 +400,7 @@
     
     if (resultList) {
       nvl = resultList;
-      while (nv = *nvl++) {
+      while ((nv = *nvl++)) {
 	fprintf(stdout, "%s: %s\n", 
 		nv->attrName, 
 		nv->attrVal ? (nv->attrVal[0] ? nv->attrVal[0] : "") : "");
@@ -697,6 +695,7 @@
   if (addList) deleteAttributeList(addList);  
   psetDelete(pset);
 
+  return 1;
 }
 
 
@@ -870,6 +869,7 @@
 
   else return 0;
 
+  return -1;
 }
 #endif
 
@@ -1055,7 +1055,7 @@
   pr_st = PR_GetHostByName(systemInfo, buf, PR_NETDB_BUF_SIZE, &hostentry);
 
   index = 0;
-  while (index = PR_EnumerateHostEnt(index, &hostentry, 8000, &netaddr1)) {
+  while ((index = PR_EnumerateHostEnt(index, &hostentry, 8000, &netaddr1))) {
     if (netaddr1.inet.ip == netaddr.inet.ip)  return 1;
   }
   


Index: getport.c
===================================================================
RCS file: /cvs/dirsec/adminserver/admserv/cgi-src40/getport.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- getport.c	11 May 2007 19:44:05 -0000	1.6
+++ getport.c	14 Jul 2008 20:00:02 -0000	1.7
@@ -85,7 +85,7 @@
   if (binddn) rv = ADM_GetCurrentPassword(&err, &bindpw);
 
   /* Initialize the pset  */
-  rv = ADMSSL_InitSimple(configdir, secdir);
+  rv = ADMSSL_InitSimple(configdir, secdir, 1);
   if (rv) {
     rpt_err(APP_ERROR, "SSL related initialization failed", NULL, NULL);
   }


Index: htmladmin.c
===================================================================
RCS file: /cvs/dirsec/adminserver/admserv/cgi-src40/htmladmin.c,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- htmladmin.c	11 May 2007 19:44:05 -0000	1.9
+++ htmladmin.c	14 Jul 2008 20:00:02 -0000	1.10
@@ -325,7 +325,7 @@
   if(!ldapInfo)
     exit(0);
   
-  rv = ADMSSL_InitSimple((char *)configdir, (char *)securitydir, 0);
+  rv = ADMSSL_InitSimple((char *)configdir, (char *)securitydir, 1);
   if(rv)
     exit(0);
   
@@ -481,8 +481,6 @@
   LDAPMessage *entry;
   int ldapError;
 
-  char *security = NULL;
-
   char **vals;
   char sie_conf[BIG_LINE];
 
@@ -810,7 +808,7 @@
   char *endptr = NULL;
   int rate = 300;
 
-  if (val = admldapGetExpressRefreshRate(admInfo)) {
+  if ((val = admldapGetExpressRefreshRate(admInfo))) {
 	  rate = strtol(val, &endptr, 10);
 	  PL_strfree(val);
   }
@@ -826,7 +824,7 @@
   char *val = NULL;
   int rate = 60;
   
-  if (val = admldapGetExpressCGITimeout(admInfo)) {
+  if ((val = admldapGetExpressCGITimeout(admInfo))) {
 	  rate = strtol(val, &endptr, 10);
 	  PL_strfree(val);
   }
@@ -1044,7 +1042,7 @@
 		img = strdup("oldservic.gif");
 	    }
 
-	    if(vals2 = ldap_get_values(server, isie_entry, ISIE_PRODVER_ATTR)) {
+	    if((vals2 = ldap_get_values(server, isie_entry, ISIE_PRODVER_ATTR))) {
 	      version = (char *)malloc(4+strlen(vals2[0]));
 	      sprintf(version, " %s", vals2[0]);
 	    }


Index: migrateConfig.c
===================================================================
RCS file: /cvs/dirsec/adminserver/admserv/cgi-src40/migrateConfig.c,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- migrateConfig.c	11 May 2007 19:44:05 -0000	1.7
+++ migrateConfig.c	14 Jul 2008 20:00:02 -0000	1.8
@@ -228,7 +228,7 @@
   }
 
   if (binddn) rv = ADM_GetCurrentPassword(&err, &bindpw);
-  rv = ADMSSL_InitSimple(configdir, secdir);
+  rv = ADMSSL_InitSimple(configdir, secdir, 1);
   if (rv) {
     if (i18nResource &&
 	(errMsg = res_getstring(i18nResource,


Index: restartsrv.c
===================================================================
RCS file: /cvs/dirsec/adminserver/admserv/cgi-src40/restartsrv.c,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- restartsrv.c	15 May 2007 16:45:45 -0000	1.8
+++ restartsrv.c	14 Jul 2008 20:00:02 -0000	1.9
@@ -295,7 +295,6 @@
   static char buf[BIG_LINE];
   char * p = NULL;
   const char *configdir = util_get_conf_dir();
-  const char *logdir = util_get_log_dir();
   const char *piddir = util_get_pid_dir();
 
   util_find_file_in_paths(filename, sizeof(filename), "console.conf", configdir, "", "admin-serv/config");


Index: sec-activate.c
===================================================================
RCS file: /cvs/dirsec/adminserver/admserv/cgi-src40/sec-activate.c,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- sec-activate.c	6 Jul 2007 18:06:19 -0000	1.10
+++ sec-activate.c	14 Jul 2008 20:00:02 -0000	1.11
@@ -491,7 +491,6 @@
   char error_info[BIG_LINE];
   AdmldapInfo ldapInfo = NULL;
   char *lang;
-  char line[BIG_LINE];
 
   memset((void *)errp, 0, sizeof(int));
   method = getenv("REQUEST_METHOD");


Index: security.c
===================================================================
RCS file: /cvs/dirsec/adminserver/admserv/cgi-src40/security.c,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -r1.14 -r1.15
--- security.c	27 Nov 2007 16:55:49 -0000	1.14
+++ security.c	14 Jul 2008 20:00:02 -0000	1.15
@@ -54,6 +54,7 @@
 #include "libadminutil/admutil.h"
 #include "libadminutil/distadm.h"
 #include "libadminutil/resource.h"
+#include "libadmsslutil/admsslutil.h"
 #include "libadmsslutil/certmgt.h"
 #include "libadmsslutil/psetcssl.h"
 
@@ -225,6 +226,7 @@
 
 static void closeAllSecurityDB() {
   /* close all db */
+  SSL_ClearSessionCache();
   NSS_Shutdown();
 }
 
@@ -725,7 +727,7 @@
 
         if (entry != NULL) {
           fprintf(stdout, "\t<ENTRY%d>\n", x);
-          fprintf(stdout, "\t\t<SERIAL_NUMBER>%d</SERIAL_NUMBER>\n", Hexify(&entry->serialNumber));
+          fprintf(stdout, "\t\t<SERIAL_NUMBER>%s</SERIAL_NUMBER>\n", processNullString(Hexify(&entry->serialNumber)));
           fprintf(stdout, "\t\t<REVOKE_DATE>%s</REVOKE_DATE>\n",DER_UTCTimeToAscii(&entry->revocationDate));
           fprintf(stdout, "\t</ENTRY%d>\n", x);
           x++;
@@ -837,22 +839,22 @@
 	  return;
   }
 
-  internal_slot = PK11_GetInternalKeySlot();
-  if (!internal_slot) {
-	  errorRpt(GENERAL_FAILURE, getResourceString(DBT_INIT_FAIL));
-	  return;
+  if (PK11_IsInternal(slot)) {
+	  internal_slot = slot;
+  } else {
+	  internal_slot = PK11_GetInternalKeySlot();
+	  if (!internal_slot) {
+		  errorRpt(GENERAL_FAILURE, getResourceString(DBT_INIT_FAIL));
+		  return;
+	  }
   }
 
   internalTokenName =  PK11_GetTokenName(internal_slot);
 
-  {
-    PK11SlotInfo  *slot = PK11_GetInternalKeySlot();
-
-    if (PK11_NeedUserInit(slot) == PR_TRUE) {
-      fprintf(stdout, "<NEEDINIT_INTERNAL>TRUE</NEEDINIT_INTERNAL>\n");
-    } else {
-      fprintf(stdout, "<NEEDINIT_INTERNAL>FALSE</NEEDINIT_INTERNAL>\n");
-    }
+  if (PK11_NeedUserInit(internal_slot) == PR_TRUE) {
+	  fprintf(stdout, "<NEEDINIT_INTERNAL>TRUE</NEEDINIT_INTERNAL>\n");
+  } else {
+	  fprintf(stdout, "<NEEDINIT_INTERNAL>FALSE</NEEDINIT_INTERNAL>\n");
   }
 
   certList = PK11_ListCerts(PK11CertListUnique, NULL);
@@ -884,11 +886,18 @@
            printCert(cln->cert, /*showDetail=*/PR_FALSE, NULL);
        }
   }
+  CERT_DestroyCertList(certList);
 
   if (PK11_IsInternal(slot)) {
     showCRL(certdb, SEC_CRL_TYPE);
     showCRL(certdb, SEC_KRL_TYPE);
   }
+
+  if (slot != internal_slot) {
+	  PK11_FreeSlot(internal_slot);
+  }
+  PK11_FreeSlot(slot);
+
 }
  
 /*
@@ -1511,7 +1520,6 @@
     FILE *f;
 
     PR_snprintf(full_path, sizeof(full_path), "%s%c%s", secdir, FILE_PATHSEP, filename);
-    form_unescape(full_path);
     
     if( !(f = fopen(full_path, "rb")) )  {
       PR_snprintf(msg, sizeof(msg), getResourceString(DBT_NO_FILE_EXISTS), full_path);
@@ -1764,9 +1772,6 @@
     PK11SlotList* slotList;
     PK11SlotListElement *slot;
 
-    /* Mechanism to be used to get all the tokens in PK11_GetAllTokens */
-    CK_MECHANISM_TYPE all = CKM_INVALID_MECHANISM;
-
     slotList = PK11_GetAllTokens(CKM_RSA_PKCS, PR_FALSE, PR_FALSE, NULL);
 
     fprintf(stdout, "<TOKENINFO>\n");
@@ -1956,13 +1961,13 @@
   /* cgi env setup */
   int _ai = ADMUTIL_Init();
   char * m = getenv("REQUEST_METHOD");
-  char * qs = 0;
   char *securitydir = NULL; /* looked up via sie */
   char msg[BIG_LINE];
   AdmldapInfo ldapInfo; /* our config */
   int rc = 0;
   char *sie;
   char *configdir = util_get_conf_dir();
+  const char *secdir = util_get_security_dir();
 
 #if 0
   CGI_Debug("security");
@@ -1998,6 +2003,10 @@
         errorRpt(FILE_ERROR, line);
   }
 
+  if(ADMSSL_InitSimple((char *)configdir, (char *)secdir, 1)) {
+      errorRpt(SYSTEM_ERROR, getResourceString(CMN_SSL_INIT_ERROR));
+  }
+
   securitydir = getSecurityDir(ldapInfo, sie);
 
   {
@@ -2021,6 +2030,9 @@
       }
 
 	  /* we got here, we think sie is a valid prefix */
+      /* close all db - we may have had to open the admin server key/cert db
+	     in order to use LDAPS before - now have to shut down NSS and reinit */
+      closeAllSecurityDB();
       securityInitialization(securitydir);
 
       if (!PORT_Strcmp(operation, "LIST_CERTIFICATE")) {


Index: setport.c
===================================================================
RCS file: /cvs/dirsec/adminserver/admserv/cgi-src40/setport.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- setport.c	11 May 2007 19:44:05 -0000	1.6
+++ setport.c	14 Jul 2008 20:00:02 -0000	1.7
@@ -114,7 +114,7 @@
 
   if (binddn) rv = ADM_GetCurrentPassword(&err, &bindpw);
 
-  rv = ADMSSL_InitSimple(configdir, secdir);
+  rv = ADMSSL_InitSimple(configdir, secdir, 1);
   if (rv) {
     rpt_err(APP_ERROR, "SSL related initialization failed", NULL, NULL);
   }


Index: statpingserv.c
===================================================================
RCS file: /cvs/dirsec/adminserver/admserv/cgi-src40/statpingserv.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- statpingserv.c	9 May 2007 00:26:30 -0000	1.6
+++ statpingserv.c	14 Jul 2008 20:00:02 -0000	1.7
@@ -74,8 +74,6 @@
   int port;
 
   PRFileDesc *gif;
-  int character;
-  int count=0;
   char *file;
   char *portstr;
   struct PRFileInfo64 prfileinfo;


Index: ugdsconfig.c
===================================================================
RCS file: /cvs/dirsec/adminserver/admserv/cgi-src40/ugdsconfig.c,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- ugdsconfig.c	18 Dec 2007 19:55:23 -0000	1.10
+++ ugdsconfig.c	14 Jul 2008 20:00:02 -0000	1.11
@@ -236,7 +236,7 @@
 	AdmldapInfo adminfo;
 	int rc;
 
-	if(ADMSSL_InitSimple((char *)configdir, (char *)securitydir, 0)) {
+	if(ADMSSL_InitSimple((char *)configdir, (char *)securitydir, 1)) {
 		rpt_err(SYSTEM_ERROR, i18nMsg(DBT_ADMSSL_INIT_FAILED,"Cannot initialize SSL"), NULL, NULL);
 		return NULL;
 	}


Index: viewdata.c
===================================================================
RCS file: /cvs/dirsec/adminserver/admserv/cgi-src40/viewdata.c,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- viewdata.c	11 May 2007 19:44:05 -0000	1.8
+++ viewdata.c	14 Jul 2008 20:00:02 -0000	1.9
@@ -113,7 +113,7 @@
   if(!ldapInfo)
     exit(0);
   
-  rv = ADMSSL_InitSimple((char *)configdir, (char *)securitydir, 0);
+  rv = ADMSSL_InitSimple((char *)configdir, (char *)securitydir, 1);
   if(rv)
     exit(0);
   
@@ -261,11 +261,11 @@
   }
 
   PR_smprintf_free(dn);
-  if(vals = ldap_get_values(server, entry, "nshtmladminproducturl")) {
+  if((vals = ldap_get_values(server, entry, "nshtmladminproducturl"))) {
     *url = strdup(vals[0]);
     ldap_value_free(vals);
   }
-  if(vals = ldap_get_values(server, entry, "nshtmladminproducttext")) {
+  if((vals = ldap_get_values(server, entry, "nshtmladminproducttext"))) {
     *text = strdup(vals[0]);
     ldap_value_free(vals);
   }
@@ -292,13 +292,13 @@
     return;
 
 
-  if(vals = ldap_get_values(server, entry, "serverproductname")) {
+  if((vals = ldap_get_values(server, entry, "serverproductname"))) {
     fprintf(stdout,(const char*)getResourceString(DBT_OUTPUT_DATA_SERVER_PRODUCT_NAME), vals[0]);
     ldap_value_free(vals);
   }
 
 
-  if(vals = ldap_get_values(server, entry, "installationtimestamp")) {
+  if((vals = ldap_get_values(server, entry, "installationtimestamp"))) {
     struct tm tm;
     char buf[BIG_LINE];
 
@@ -323,7 +323,7 @@
   }
 
 
-  if(vals = ldap_get_values(server, entry, "serverroot")) {
+  if((vals = ldap_get_values(server, entry, "serverroot"))) {
     fprintf(stdout, (const char*)getResourceString(DBT_OUTPUT_DATA_SERVER_ROOT), vals[0]);
     ldap_value_free(vals);
   }
@@ -358,37 +358,37 @@
 				"(objectclass=*)", NULL, 0, &entry)) != LDAP_SUCCESS)
     return;
 
-  if(vals = ldap_get_values(server, entry, "nsproductname")) {
+  if((vals = ldap_get_values(server, entry, "nsproductname"))) {
     fprintf(stdout, (const char*)getResourceString(DBT_OUTPUT_DATA_PRODUCT_NAME), vals[0]);
     ldap_value_free(vals);
   }
 
-  if(vals = ldap_get_values(server, entry, "nsvendor")) {
+  if((vals = ldap_get_values(server, entry, "nsvendor"))) {
     fprintf(stdout, (const char*)getResourceString(DBT_OUTPUT_DATA_VENDOR), vals[0]);
     ldap_value_free(vals);
   }
 
-  if(vals = ldap_get_values(server, entry, "nsproductversion")) {
+  if((vals = ldap_get_values(server, entry, "nsproductversion"))) {
     fprintf(stdout, (const char*)getResourceString(DBT_OUTPUT_DATA_PRODUCT_VERSION), vals[0]);
     ldap_value_free(vals);
   }
 
-  if(vals = ldap_get_values(server, entry, "nsbuildnumber")) {
+  if((vals = ldap_get_values(server, entry, "nsbuildnumber"))) {
     fprintf(stdout,(const char*)getResourceString(DBT_OUTPUT_DATA_BUILD_NUMBER), vals[0]);
     ldap_value_free(vals);
   }
 
-  if(vals = ldap_get_values(server, entry, "nsbuildsecurity")) {
+  if((vals = ldap_get_values(server, entry, "nsbuildsecurity"))) {
     fprintf(stdout, (const char*)getResourceString(DBT_OUTPUT_DATA_BUILD_SECURITY), vals[0]);
     ldap_value_free(vals);
   }
 
-  if(vals = ldap_get_values(server, entry, "nsrevisionnumber")) {
+  if((vals = ldap_get_values(server, entry, "nsrevisionnumber"))) {
     fprintf(stdout, (const char*)getResourceString(DBT_OUTPUT_DATA_REVISION_NUMBER), vals[0]);
     ldap_value_free(vals);
   }
 
-  if(vals = ldap_get_values(server, entry, "description")) {
+  if((vals = ldap_get_values(server, entry, "description"))) {
     fprintf(stdout, (const char*)getResourceString(DBT_OUTPUT_DATA_DESCRIPTION), vals[0]);
     ldap_value_free(vals);
   }
@@ -403,12 +403,6 @@
     char line[BIG_LINE];
     FILE *html = open_html_file(MY_PAGE);
     char *sie = NULL;
-
-    char *request;
-    int errorcode;
-    PRFileDesc *sockd;
-    bufstruct *nbuf;
-
     char *binddn, *bindpw;
     LDAP *server;
     LDAPMessage *entry;
@@ -453,7 +447,7 @@
 					    "(objectclass=*)", NULL, 0, &entry)) != LDAP_SUCCESS)
 		continue;
 	      
-	      if(vals = ldap_get_values(server, entry, "nsserverid")) {
+	      if((vals = ldap_get_values(server, entry, "nsserverid"))) {
 		fprintf(stdout, (const char*)getResourceString(DBT_MAIN_SERVER_ID), vals[0]);
 		ldap_value_free(vals);
 	      }


Index: viewlog.c
===================================================================
RCS file: /cvs/dirsec/adminserver/admserv/cgi-src40/viewlog.c,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- viewlog.c	31 Oct 2007 05:30:53 -0000	1.10
+++ viewlog.c	14 Jul 2008 20:00:02 -0000	1.11
@@ -156,7 +156,6 @@
 void display_logfiles(char *logdir, char *default_logfile)
 {
     int  x; 
-    int  cnt=0;
     char *seps = "/";
     char *token; 
     char *curlog = NULL;
@@ -289,7 +288,6 @@
     char *file;
     char *logdir = NULL;
     char *id;
-    char **logfiles = NULL;
     char tmp[BIG_LINE];
     int x;
     int print_html = 1;
@@ -353,6 +351,11 @@
                     configdir ? configdir : "(null)", rc);
         rpt_err(APP_ERROR, line, NULL, NULL);
     } else {
+        const char *secdir = util_get_security_dir();
+        if(ADMSSL_InitSimple((char *)configdir, (char *)secdir, 1)) {
+            rpt_err(SYSTEM_ERROR, getResourceString(CMN_SSL_INIT_ERROR), NULL, NULL);
+        }
+
         logdir = getLogDir(ldapInfo, id);
         if(!logdir) {
             PR_snprintf(msg, sizeof(msg), 
@@ -407,7 +410,6 @@
                     }
 
                     PR_snprintf(full_path, sizeof(full_path), "%s%c%s", logdir, FILE_PATHSEP, file);
-                    form_unescape(full_path);  /* bug 27409, 31807 */
                     cmd = fopen(full_path, "r");
                     fprintf(stdout, getResourceString(DBT_MAIN_WIDTH));
                     PR_snprintf(tmp, sizeof(tmp), getResourceString(DBT_SUBTITLE), num, file, (str)? getResourceString(DBT_WITH) : "",
@@ -435,7 +437,6 @@
         if (file || *file || util_is_valid_path_string(file) ||
             util_verify_file_or_dir(logdir, PR_FILE_DIRECTORY, file, -1, PR_FILE_FILE)) {
             PR_snprintf(full_path, sizeof(full_path), "%s%c%s", logdir, FILE_PATHSEP, file);
-            form_unescape(full_path);  /* bug 27409, 31807 */
             cmd = fopen(full_path, "r");
 
             /* begin search */




More information about the Fedora-directory-commits mailing list