From abbf219e7539f114be8763ab4ac0288507a30264 Mon Sep 17 00:00:00 2001 From: "Ralf W. Grosse-Kunstleve" Date: Thu, 22 Feb 2001 20:47:36 +0000 Subject: [PATCH] Safer pickle support (explicit auto_pickle parameter) [SVN r9313] --- src/classes.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/classes.cpp b/src/classes.cpp index 2901aa81..429cfd91 100644 --- a/src/classes.cpp +++ b/src/classes.cpp @@ -99,6 +99,13 @@ namespace { return tuple(instance_class, initargs, state); } + ref auto_pickle(PyObject_GetAttrString(instance_class.get(), const_cast("__auto_pickle__")), ref::null_ok); + PyErr_Clear(); + if (auto_pickle.get() == 0) { + PyErr_SetString(PyExc_AttributeError, "auto_pickle not enabled"); + throw error_already_set(); + } + ref state(PyObject_GetAttrString(obj, const_cast("__dict__")), ref::null_ok); PyErr_Clear(); if (state.get() != 0 && dictionary(state).size() > 0)