Must catch TypeError from int(length).
diff --git a/Lib/CGIHTTPServer.py b/Lib/CGIHTTPServer.py
index 6c3e09e..b3f922b 100644
--- a/Lib/CGIHTTPServer.py
+++ b/Lib/CGIHTTPServer.py
@@ -234,7 +234,7 @@
             self.log_message("command: %s", cmdline)
             try:
                 nbytes = int(length)
-            except ValueError:
+            except (TypeError, ValueError):
                 nbytes = 0
             files = popenx(cmdline, 'b')
             fi = files[0]