diff --git a/tests/fuzztest/SConscript b/tests/fuzztest/SConscript
index e7eb4e2..a80a902 100644
--- a/tests/fuzztest/SConscript
+++ b/tests/fuzztest/SConscript
@@ -94,9 +94,12 @@
                                        stdout=subprocess.PIPE, stderr=subprocess.PIPE)
             stdout, stderr = process.communicate(input = corpus.read(filename))
             result = process.wait()
-        except Exception as e:
-            print('Exception when fuzzing against ' + filename + ": " + str(e))
-            raise
+        except OSError as e:
+            if e.errno == 22:
+                print("Warning: OSError 22 when running with input " + filename)
+                result = process.wait()
+            else:
+                raise
 
         if result != 0:
             stdout += stderr
diff --git a/tests/fuzztest/fuzztest.c b/tests/fuzztest/fuzztest.c
index ab7824c..4de793d 100644
--- a/tests/fuzztest/fuzztest.c
+++ b/tests/fuzztest/fuzztest.c
@@ -25,13 +25,13 @@
 #include "alltypes_proto3_pointer.pb.h"
 
 /* Longer buffer size allows hitting more branches, but lowers performance. */
-#if defined(LLVMFUZZER)
-static size_t g_bufsize = 256*1024;
-#elif defined(__AVR__)
-static size_t g_bufsize = 2048;
-#else
-static size_t g_bufsize = 4096;
+#ifndef FUZZTEST_BUFSIZE
+#define FUZZTEST_BUFSIZE 256*1024
 #endif
+#ifndef FUZZTEST_MAX_STANDALONE_BUFSIZE
+#define FUZZTEST_MAX_STANDALONE_BUFSIZE 16384
+#endif
+static size_t g_bufsize = FUZZTEST_BUFSIZE;
 
 static uint32_t xor32_checksum(const void *data, size_t len)
 {
@@ -393,6 +393,9 @@
     if (argc >= 2)
     {
         /* Run in stand-alone mode */
+        if (g_bufsize > FUZZTEST_MAX_STANDALONE_BUFSIZE)
+            g_bufsize = FUZZTEST_MAX_STANDALONE_BUFSIZE;
+
         random_set_seed(strtoul(argv[1], NULL, 0));
         iterations = (argc >= 3) ? atol(argv[2]) : 10000;
 
@@ -411,9 +414,17 @@
         buffer = malloc_with_check(g_bufsize);
 
         SET_BINARY_MODE(stdin);
-        msglen = fread(buffer, 1, g_bufsize, stdin);
+        msglen = fread(buffer, 1, g_bufsize/2, stdin);
         LLVMFuzzerTestOneInput(buffer, msglen);
 
+        while (!feof(stdin))
+        {
+            /* Read any leftover input data if our buffer is smaller than
+             * message size. */
+            fprintf(stderr, "Warning: input message too long\n");
+            fread(buffer, 1, g_bufsize, stdin);
+        }
+
         free_with_check(buffer);
     }
     
diff --git a/tests/site_scons/platforms/avr/avr.py b/tests/site_scons/platforms/avr/avr.py
index 64c608a..87608f4 100644
--- a/tests/site_scons/platforms/avr/avr.py
+++ b/tests/site_scons/platforms/avr/avr.py
@@ -12,7 +12,8 @@
     env.Append(CFLAGS = "-mmcu=atmega1284 -Dmain=app_main -Os")
     env.Append(CXXFLAGS = "-mmcu=atmega1284 -Dmain=app_main -Os -Wno-type-limits")
     env.Append(CPPDEFINES = {'PB_CONVERT_DOUBLE_FLOAT': 1, 'UNITTESTS_SHORT_MSGS': 1,
-                             '__ASSERT_USE_STDERR': 1, 'MAX_REALLOC_SIZE': '4096'})
+                             '__ASSERT_USE_STDERR': 1, 'MAX_REALLOC_SIZE': '4096',
+                             'FUZZTEST_BUFSIZE': 2048})
     env.Append(LINKFLAGS = "-mmcu=atmega1284")
     env.Append(LINKFLAGS = "build/avr_io.o -Wl,-Map,avr.map")
     avr_io = env.Object("build/avr_io.o", "site_scons/platforms/avr/avr_io.c")
diff --git a/tests/site_scons/platforms/stm32/stm32.py b/tests/site_scons/platforms/stm32/stm32.py
index 48bba2e..5e68dc2 100644
--- a/tests/site_scons/platforms/stm32/stm32.py
+++ b/tests/site_scons/platforms/stm32/stm32.py
@@ -8,6 +8,7 @@
     env.Replace(CC  = "arm-none-eabi-gcc",
                 CXX = "arm-none-eabi-g++")
     env.Replace(TEST_RUNNER = "site_scons/platforms/stm32/run_test.sh")
+    env.Append(CPPDEFINES = {'FUZZTEST_BUFSIZE': 4096})
     env.Append(CFLAGS = "-mcpu=cortex-m3 -mthumb -Os")
     env.Append(CXXFLAGS = "-mcpu=cortex-m3 -mthumb -Os")
     env.Append(LINKFLAGS = "-mcpu=cortex-m3 -mthumb")
