{"record":{"id":"153dfda8df12eb4c","repo":"DrKLO/Telegram","slug":"unknown-option-s-n","errorCode":null,"errorMessage":"Unknown option: %s\\n","messagePattern":"Unknown option: (.+?)\\\\n","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"TMessagesProj/jni/opus/src/repacketizer_demo.c","lineNumber":94,"sourceCode":"      if (strcmp(argv[i], \"-merge\")==0)\n      {\n         merge = atoi(argv[i+1]);\n         if(merge<1)\n         {\n            fprintf(stderr, \"-merge parameter must be at least 1.\\n\");\n            return EXIT_FAILURE;\n         }\n         if(merge>48)\n         {\n            fprintf(stderr, \"-merge parameter must be less than 48.\\n\");\n            return EXIT_FAILURE;\n         }\n         i++;\n      } else if (strcmp(argv[i], \"-split\")==0)\n         split = 1;\n      else\n      {\n         fprintf(stderr, \"Unknown option: %s\\n\", argv[i]);\n         usage(argv[0]);\n         return EXIT_FAILURE;\n      }\n   }\n   fin = fopen(argv[argc-2], \"r\");\n   if(fin==NULL)\n   {\n     fprintf(stderr, \"Error opening input file: %s\\n\", argv[argc-2]);\n     return EXIT_FAILURE;\n   }\n   fout = fopen(argv[argc-1], \"w\");\n   if(fout==NULL)\n   {\n     fprintf(stderr, \"Error opening output file: %s\\n\", argv[argc-1]);\n     fclose(fin);\n     return EXIT_FAILURE;\n   }\n","sourceCodeStart":76,"sourceCodeEnd":112,"githubUrl":"https://github.com/DrKLO/Telegram/blob/45ab8f4308496e1f01026a97fcdb0d58a5274474/TMessagesProj/jni/opus/src/repacketizer_demo.c#L76-L112","documentation":"While iterating over arguments between position 1 and argc-2 (the option zone), the tool encountered a token that is not -merge, -split, or recognized by any branch. The else clause at line 92 prints the unknown option, calls usage(), and exits. This catch-all ensures no silent misinterpretation of arguments.","triggerScenarios":"Passing a misspelled flag like -merg, -splt, or -output; passing an option after the two positional file arguments (where it is treated as an unknown option because the loop only covers argv[1..argc-3]); passing a flag that belongs to a different Opus tool.","commonSituations":"Confusing repacketizer_demo options with opus_demo or opusenc options; shell auto-expansion producing unexpected tokens; typos.","solutions":["Review the supported options: -merge <N> and -split are the only flags.","Ensure all options precede the two positional file arguments.","Check for typos in flag names."],"exampleFix":"// before\nrepacketizer_demo -merg 4 in.oct out.oct\n// after\nrepacketizer_demo -merge 4 in.oct out.oct","handlingStrategy":"validation","validationCode":"// Whitelist known options\nif (strcmp(argv[i], \"-merge\") != 0 && strcmp(argv[i], \"-split\") != 0) {\n    fprintf(stderr, \"Unknown option: %s\\n\", argv[i]);\n    return EXIT_FAILURE;\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Place all options before positional arguments in CLI invocations.","Double-check flag spelling against the usage string."],"tags":["opus","cli","argument-validation","repacketizer"],"backgroundTag":null,"analyzedSha":"45ab8f4308496e1f01026a97fcdb0d58a5274474","analyzedAt":"2026-08-14T05:19:30.815Z","schemaVersion":2},"datasetVersion":"2026-08-14T10:17:34.591Z"}