File: | _mysql.c |
Function: | _mysql_escape_string |
Error: | memory leak: ob_refcnt of '*str.44' is 1 too high |
1072 static PyObject *
1073 _mysql_escape_string(
1074 _mysql_ConnectionObject *self,
1075 PyObject *args)
1076 {
1077 PyObject *str;
1078 char *in, *out;
1079 int len, size;
1080 if (!PyArg_ParseTuple(args, "s#:escape_string", &in, &size)) return NULL;
when PyArg_ParseTuple() succeeds
taking False path
1081 str = PyUnicode_FromStringAndSize((char *) NULL, size*2+1);
when PyUnicodeUCS4_FromStringAndSize() succeeds
'*str.44' was allocated at: str = PyUnicode_FromStringAndSize((char *) NULL, size*2+1);
ob_refcnt is now refs: 1 owned
1082 if (!str) return PyErr_NoMemory();
taking False path
1083 out = get_string(str);
1084 if (!out) return NULL;
when treating unknown char * from _mysql.c:1083 as non-NULL
taking False path
1085 #if MYSQL_VERSION_ID < 32321
1086 // TODO: we don't support mysql 3.1...
1087 len = mysql_escape_string(out, in, size);
1088 #else
1089 len = mysql_real_escape_string(utf8conn, out, in, size);
1090 #endif
1091 if (PyUnicode_Resize(&str, len) < 0) return NULL;
when considering range: -0x80000000 <= value <= -1
taking True path
1092 return (str);
1093 }
File: | _mysql.c |
Function: | _mysql_escape_string |
Error: | returning (PyObject*)NULL without setting an exception |
1072 static PyObject *
1073 _mysql_escape_string(
1074 _mysql_ConnectionObject *self,
1075 PyObject *args)
1076 {
1077 PyObject *str;
1078 char *in, *out;
1079 int len, size;
1080 if (!PyArg_ParseTuple(args, "s#:escape_string", &in, &size)) return NULL;
when PyArg_ParseTuple() succeeds
taking False path
1081 str = PyUnicode_FromStringAndSize((char *) NULL, size*2+1);
when PyUnicodeUCS4_FromStringAndSize() succeeds
1082 if (!str) return PyErr_NoMemory();
taking False path
1083 out = get_string(str);
1084 if (!out) return NULL;
when treating unknown char * from _mysql.c:1083 as non-NULL
taking False path
1085 #if MYSQL_VERSION_ID < 32321
1086 // TODO: we don't support mysql 3.1...
1087 len = mysql_escape_string(out, in, size);
1088 #else
1089 len = mysql_real_escape_string(utf8conn, out, in, size);
1090 #endif
1091 if (PyUnicode_Resize(&str, len) < 0) return NULL;
when considering range: -0x80000000 <= value <= -1
taking True path
1092 return (str);
1093 }