Summary: | Options for isofs does not recognized after \'iocharset\' | ||
---|---|---|---|
Product: | Sisyphus | Reporter: | Vitaly A. Ostanin <vyt> |
Component: | kernel24-up | Assignee: | Peter 'Nidd' Novodvorsky <nidd> |
Status: | CLOSED FIXED | QA Contact: | |
Severity: | minor | ||
Priority: | P4 | ||
Version: | unstable | ||
Hardware: | all | ||
OS: | Linux |
Description
Vitaly A. Ostanin
2002-01-23 16:17:49 MSK
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; } --- 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; } --- |