diff --git a/src/cam/options.cpp b/src/cam/options.cpp
index 6e0d802cb986..33bc512e6571 100644
--- a/src/cam/options.cpp
+++ b/src/cam/options.cpp
@@ -945,6 +945,13 @@ OptionsParser::Options OptionsParser::parse(int argc, char **argv)
 		}
 	}
 
+	if (optind < argc) {
+		std::cerr << "Invalid non-option argument '" << argv[optind]
+			  << "'" << std::endl;
+		usage();
+		return options;
+	}
+
 	options.valid_ = true;
 	return options;
 }
