Issue #23838: linecache now clears the cache and returns an empty result on
MemoryError.
diff --git a/Lib/linecache.py b/Lib/linecache.py
index e505b03..884cbf4 100644
--- a/Lib/linecache.py
+++ b/Lib/linecache.py
@@ -37,8 +37,12 @@
 
     if filename in cache:
         return cache[filename][2]
-    else:
+
+    try:
         return updatecache(filename, module_globals)
+    except MemoryError:
+        clearcache()
+        return []
 
 
 def checkcache(filename=None):