diff --git a/src/core/support/log_linux.c b/src/core/support/log_linux.c
index f3b528bdc4d357f204a72451ef24b9b6fb56eebf..36fb4b5051f3cf46b0afd3e62b25cebe2b4abb49 100644
--- a/src/core/support/log_linux.c
+++ b/src/core/support/log_linux.c
@@ -54,7 +54,10 @@ void gpr_log(const char *file, int line, gpr_log_severity severity,
   char *message = NULL;
   va_list args;
   va_start(args, format);
-  vasprintf(&message, format, args);
+  if (vasprintf(&message, format, args) == -1) {
+    va_end(args);
+    return;
+  }
   va_end(args);
   gpr_log_message(file, line, severity, message);
   free(message);