better argument handling
authorMiloš Mulač <mulac@civ.zcu.cz>
Mon, 16 Apr 2007 12:13:06 +0000 (12:13 +0000)
committerMiloš Mulač <mulac@civ.zcu.cz>
Mon, 16 Apr 2007 12:13:06 +0000 (12:13 +0000)
- prevent coredumpig when args are in some 'bad' order (C or S before n)

org.glite.lb.client/examples/job_reg.c

index b9300eb..4af5a5b 100644 (file)
@@ -36,8 +36,8 @@ int main(int argc, char *argv[])
                        case 'j': job = (char *) strdup(optarg); break;
                        case 'm': server = strdup(optarg); break;
                        case 'n': num_subjobs = atoi(optarg); break;
-                       case 'S': if (num_subjobs>0) { reg_subjobs = 1; break; }
-                       case 'C': if (num_subjobs>0) { collection = 1; break; }
+                       case 'S': reg_subjobs = 1; break;
+                       case 'C': collection = 1; break;
                        case 'P': pbs = 1; break;
                        case 'l': jdl = (char *) strdup(optarg); break;
                        case 'e': seed = strdup(optarg); break;
@@ -46,6 +46,11 @@ int main(int argc, char *argv[])
                }
        } while (!done);
 
+       if ((num_subjobs <= 0) && (reg_subjobs || collection) ) {
+               usage(argv[0]);
+               exit(EINVAL);
+       }       
+
        if (!job && !server) {
                fprintf(stderr,"%s: either -m server or -j jobid has to be specified\n",argv[0]);
                exit(1);