bug-gnu-arch
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Bug-gnu-arch] [bug #5640] buildcfg/cfgcat "valid name" tests trump "exi


From: nobody
Subject: [Bug-gnu-arch] [bug #5640] buildcfg/cfgcat "valid name" tests trump "existing file" test
Date: Tue, 30 Sep 2003 13:46:13 -0400
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-GB; rv:1.4) Gecko/20030908 Debian/1.4-4

=================== BUG #5640: FULL BUG SNAPSHOT ===================
http://savannah.gnu.org/bugs/?func=detailbug&bug_id=5640&group_id=4899

Submitted by: asuffield               Project: GNU arch -- a revision control 
system
Submitted on: Tue 09/30/2003 at 17:46
Category:  tla                        Severity:  5 - Major                  
Bug Group:  small feature idea        Resolution:  None                     
Status:  Open                         Release:  
address@hidden/tla--devo--1.1--patch-187
Fixed Release:                        Merge Request?:  yes -- diffs included
Your Archive Name:                    Your Archive Location:                
Assigned to:  None                    

Summary:  buildcfg/cfgcat "valid name" tests trump "existing file" test

Original Submission:  tla cfgcat -s ../../configs/foo



This can't work, because the "valid name" test for configs rejects path 
components beginning with a period.



As discussed, the trivial fix is to skip the valid name test when it's a valid 
file. This also involves disabling some invariants which no longer hold.



For -o, I can see no use for the test (and it's been historically broken 
anyway), so I removed it.



--- orig/libarch/cmd-buildcfg.c

+++ mod/libarch/cmd-buildcfg.c

@@ -129,7 +129,7 @@

 

     config = argv[1];

 

-    if (!arch_valid_config_name (config))

+    if (safe_access (config, F_OK) != 0 && !arch_valid_config_name (config))

       {

         safe_printfmt (2, "%s: invalid config name (%s)n",

                        argv[0], config);





--- orig/libarch/cmd-cfgcat.c

+++ mod/libarch/cmd-cfgcat.c

@@ -169,17 +169,17 @@

 

     config = argv[1];

 

-    if (!arch_valid_config_name (config))

+    if (safe_access (config, F_OK) != 0 && !arch_valid_config_name (config))

       {

         safe_printfmt (2, "%s: invalid config name (%s)n", argv[0], config);

         exit (2);

       }

 

-    if (output && !arch_valid_config_name (config))

-      {

-        safe_printfmt (2, "%s: invalid config name (%s)n", argv[0], output);

-        exit (2);

-      }

+/*     if (output && !arch_valid_config_name (output)) */

+/*       { */

+/*         safe_printfmt (2, "%s: invalid config name (%s)n", argv[0], 
output); */

+/*         exit (2); */

+/*       } */

 

     tree_root = arch_tree_root (0, dir, 0);

 





--- orig/libarch/configs.c

+++ mod/libarch/configs.c

@@ -38,14 +38,15 @@

   t_uchar * rel = 0;

   t_uchar * answer = 0;

 

-  invariant (arch_valid_config_name (config_name));

-

-

   rel = file_name_in_vicinity (0, "configs", config_name);

   if (safe_access(rel, F_OK))

     {

       rel = file_name_in_vicinity (0, "", config_name);

     }

+  else

+    {

+      invariant (arch_valid_config_name (config_name));

+    }

   answer = file_name_in_vicinity (0, tree_root, rel);

 

   lim_free (0, rel);

@@ -60,7 +61,7 @@

   int in_fd;

   rel_table answer = 0;

 

-  invariant (arch_valid_config_name (config_name));

+/*   invariant (arch_valid_config_name (config_name)); */

 

   config_path = arch_config_path (tree_root, config_name);

 

@@ -215,7 +216,7 @@

   t_uchar * config_tmp = 0;

   int answer;

 

-  invariant (arch_valid_config_name (name));

+/*   invariant (arch_valid_config_name (name)); */

 

   config_file = arch_config_path (tree_root, name);

   config_dir = file_name_directory_file (0, config_file);

@@ -253,7 +254,7 @@

   t_uchar * tmp_tail = 0;

   t_uchar * config_tmp = 0;

 

-  invariant (arch_valid_config_name (name));

+/*   invariant (arch_valid_config_name (name)); */

 

   config_file = arch_config_path (tree_root, name);

   config_dir = file_name_directory_file (0, config_file);











No Followups Have Been Posted


CC list is empty


No files currently attached


For detailed info, follow this link:
http://savannah.gnu.org/bugs/?func=detailbug&bug_id=5640&group_id=4899

_______________________________________________
  Message sent via/by Savannah
  http://savannah.gnu.org/





reply via email to

[Prev in Thread] Current Thread [Next in Thread]