bpo-35444: Fix error handling when fail to look up builtin "getattr". (GH-11047) (GH-11107)

(cherry picked from commit bb86bf4c4eaa30b1f5192dab9f389ce0bb61114d)
diff --git a/Modules/_pickle.c b/Modules/_pickle.c
index 57bb771..60ef921 100644
--- a/Modules/_pickle.c
+++ b/Modules/_pickle.c
@@ -207,19 +207,15 @@
 static int
 _Pickle_InitState(PickleState *st)
 {
-    PyObject *builtins;
     PyObject *copyreg = NULL;
     PyObject *compat_pickle = NULL;
     PyObject *codecs = NULL;
     PyObject *functools = NULL;
+    _Py_IDENTIFIER(getattr);
 
-    builtins = PyEval_GetBuiltins();
-    if (builtins == NULL)
-        goto error;
-    st->getattr = PyDict_GetItemString(builtins, "getattr");
+    st->getattr = _PyEval_GetBuiltinId(&PyId_getattr);
     if (st->getattr == NULL)
         goto error;
-    Py_INCREF(st->getattr);
 
     copyreg = PyImport_ImportModule("copyreg");
     if (!copyreg)