Bug 438 - Options for isofs does not recognized after \'iocharset\'
: Options for isofs does not recognized after \'iocharset\'
Status: CLOSED FIXED
: Sisyphus
(All bugs in Sisyphus/kernel24-up)
: unstable
: all Linux
: P4 minor
Assigned To:
:
:
:
:
:
  Show dependency tree
 
Reported: 2002-01-23 16:17 by
Modified: 2003-08-25 15:18 (History)


Attachments


Note

You need to log in before you can comment on or make changes to this bug.


Description From 2002-01-23 16:17:49
Строка
mount -t auto /dev/cdrom /mnt/tmp -o session=0,iocharset=koi8-r,ro,showexec
работает, а строка
mount -t auto /dev/cdrom /mnt/tmp -o iocharset=koi8-r,ro,showexec,session=0
не работает.

---

---

------- Comment #1 From 2002-03-07 19:21:01 -------
Will be fixed in 2.4.18-alt2, here is the patch (replace with it
linux-2.4.6-iso9660opt.patch
---
--- inode.c.orig        Thu Mar  7 18:41:45 2002                                
+++ inode.c     Thu Mar  7 19:35:03 2002                                        
@@ -295,6 +295,8 @@                                                             
        popt->sbsector=-1;                                                   
        if (!options) return 1;                                                 
        for (this_char = strtok(options,\",\"); this_char; this_char
= strtok(NULL,\",\")) {                                     
+               if (!this_char)                                                 
+                   return 1;                                                   
                if (strncmp(this_char,\"norock\",6) == 0) {           
                  popt->rock = \'n\';                                        
                  continue;                                                     
@@ -340,13 +342,13 @@                                                           
                        else if (!strcmp(value,\"acorn\"))
popt->map = \'a\';                                                    
                        else return 0;                                          
                }                                                               
-               if (!strcmp(this_char,\"session\") && value)
{                                                                 
+               else if (!strcmp(this_char,\"session\") &&
value) {                                                            
                        char * vpnt = value;                                    
                        unsigned int ivalue = simple_strtoul(vpnt, &vpnt,
0);                                                
                        if(ivalue < 0 || ivalue >99) return 0;            
                        popt->session=ivalue+1;                              
                }                                                               
-               if (!strcmp(this_char,\"sbsector\") && value)
{                                                                
+               else if (!strcmp(this_char,\"sbsector\") &&
value) {                                                           
                        char * vpnt = value;                                    
                        unsigned int ivalue = simple_strtoul(vpnt, &vpnt,
0);                                                
                        if(ivalue < 0 || ivalue >660*512) return 0;       
@@ -396,7 +398,7 @@                                                             
                    break;                                                      
                  }                                                             
                }                                                               
-               else return 1;                                                  
+               else continue;                                                  
        }                                                                       
        return 1;                                                               
 }
---
------- Comment #2 From 2002-03-07 19:21:01 -------
Will be fixed in 2.4.18-alt2, here is the patch (replace with it
linux-2.4.6-iso9660opt.patch
---
--- inode.c.orig        Thu Mar  7 18:41:45 2002                                
+++ inode.c     Thu Mar  7 19:35:03 2002                                        
@@ -295,6 +295,8 @@                                                             
        popt->sbsector=-1;                                                   
        if (!options) return 1;                                                 
        for (this_char = strtok(options,\",\"); this_char; this_char
= strtok(NULL,\",\")) {                                     
+               if (!this_char)                                                 
+                   return 1;                                                   
                if (strncmp(this_char,\"norock\",6) == 0) {           
                  popt->rock = \'n\';                                        
                  continue;                                                     
@@ -340,13 +342,13 @@                                                           
                        else if (!strcmp(value,\"acorn\"))
popt->map = \'a\';                                                    
                        else return 0;                                          
                }                                                               
-               if (!strcmp(this_char,\"session\") && value)
{                                                                 
+               else if (!strcmp(this_char,\"session\") &&
value) {                                                            
                        char * vpnt = value;                                    
                        unsigned int ivalue = simple_strtoul(vpnt, &vpnt,
0);                                                
                        if(ivalue < 0 || ivalue >99) return 0;            
                        popt->session=ivalue+1;                              
                }                                                               
-               if (!strcmp(this_char,\"sbsector\") && value)
{                                                                
+               else if (!strcmp(this_char,\"sbsector\") &&
value) {                                                           
                        char * vpnt = value;                                    
                        unsigned int ivalue = simple_strtoul(vpnt, &vpnt,
0);                                                
                        if(ivalue < 0 || ivalue >660*512) return 0;       
@@ -396,7 +398,7 @@                                                             
                    break;                                                      
                  }                                                             
                }                                                               
-               else return 1;                                                  
+               else continue;                                                  
        }                                                                       
        return 1;                                                               
 }
---