std/jpeg: reject 2 (not 1, 3 or 4) components
diff --git a/release/c/wuffs-unsupported-snapshot.c b/release/c/wuffs-unsupported-snapshot.c
index 288e948..1364331 100644
--- a/release/c/wuffs-unsupported-snapshot.c
+++ b/release/c/wuffs-unsupported-snapshot.c
@@ -8636,6 +8636,7 @@
 extern const char wuffs_jpeg__error__missing_quantization_table[];
 extern const char wuffs_jpeg__error__truncated_input[];
 extern const char wuffs_jpeg__error__unsupported_arithmetic_coding[];
+extern const char wuffs_jpeg__error__unsupported_color_model[];
 extern const char wuffs_jpeg__error__unsupported_fractional_sampling[];
 extern const char wuffs_jpeg__error__unsupported_hierarchical_coding[];
 extern const char wuffs_jpeg__error__unsupported_implicit_height[];
@@ -36596,6 +36597,7 @@
 const char wuffs_jpeg__error__missing_quantization_table[] = "#jpeg: missing Quantization table";
 const char wuffs_jpeg__error__truncated_input[] = "#jpeg: truncated input";
 const char wuffs_jpeg__error__unsupported_arithmetic_coding[] = "#jpeg: unsupported arithmetic coding";
+const char wuffs_jpeg__error__unsupported_color_model[] = "#jpeg: unsupported color model";
 const char wuffs_jpeg__error__unsupported_fractional_sampling[] = "#jpeg: unsupported fractional sampling";
 const char wuffs_jpeg__error__unsupported_hierarchical_coding[] = "#jpeg: unsupported hierarchical coding";
 const char wuffs_jpeg__error__unsupported_implicit_height[] = "#jpeg: unsupported implicit height";
@@ -38436,6 +38438,9 @@
     if ((v_c == 0) || (v_c > 4)) {
       status = wuffs_base__make_status(wuffs_jpeg__error__bad_sof_marker);
       goto exit;
+    } else if (v_c == 2) {
+      status = wuffs_base__make_status(wuffs_jpeg__error__unsupported_color_model);
+      goto exit;
     }
     self->private_impl.f_num_components = ((uint32_t)(v_c));
     if (self->private_impl.f_payload_length != (3 * self->private_impl.f_num_components)) {
diff --git a/std/jpeg/decode_jpeg.wuffs b/std/jpeg/decode_jpeg.wuffs
index 5a2715b..cdd26fd 100644
--- a/std/jpeg/decode_jpeg.wuffs
+++ b/std/jpeg/decode_jpeg.wuffs
@@ -23,6 +23,7 @@
 pub status "#missing Quantization table"
 pub status "#truncated input"
 pub status "#unsupported arithmetic coding"
+pub status "#unsupported color model"
 pub status "#unsupported fractional sampling"
 pub status "#unsupported hierarchical coding"
 pub status "#unsupported implicit height"
@@ -414,6 +415,8 @@
     c = args.src.read_u8?()
     if (c == 0) or (c > 4) {
         return "#bad SOF marker"
+    } else if c == 2 {
+        return "#unsupported color model"
     }
     this.num_components = c as base.u32
     if this.payload_length <> (3 * this.num_components) {