mirror of https://github.com/python/cpython
Accept only the system default encoding when converting Python
strings to CF strings. Fixes 682215.
This commit is contained in:
parent
f008998668
commit
d505cab5b3
|
@ -14,9 +14,9 @@
|
||||||
|
|
||||||
/* Macro to test whether a weak-loaded CFM function exists */
|
/* Macro to test whether a weak-loaded CFM function exists */
|
||||||
#define PyMac_PRECHECK(rtn) do { if ( &rtn == NULL ) {\
|
#define PyMac_PRECHECK(rtn) do { if ( &rtn == NULL ) {\
|
||||||
PyErr_SetString(PyExc_NotImplementedError, \
|
PyErr_SetString(PyExc_NotImplementedError, \
|
||||||
"Not available in this shared library/OS version"); \
|
"Not available in this shared library/OS version"); \
|
||||||
return NULL; \
|
return NULL; \
|
||||||
}} while(0)
|
}} while(0)
|
||||||
|
|
||||||
|
|
||||||
|
@ -1458,7 +1458,7 @@ int CFStringRefObj_Convert(PyObject *v, CFStringRef *p_itself)
|
||||||
if (v == Py_None) { *p_itself = NULL; return 1; }
|
if (v == Py_None) { *p_itself = NULL; return 1; }
|
||||||
if (PyString_Check(v)) {
|
if (PyString_Check(v)) {
|
||||||
char *cStr = PyString_AsString(v);
|
char *cStr = PyString_AsString(v);
|
||||||
*p_itself = CFStringCreateWithCString((CFAllocatorRef)NULL, cStr, 0);
|
*p_itself = CFStringCreateWithCString((CFAllocatorRef)NULL, cStr, kCFStringEncodingASCII);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
if (PyUnicode_Check(v)) {
|
if (PyUnicode_Check(v)) {
|
||||||
|
|
|
@ -359,8 +359,10 @@ class CFStringRefObjectDefinition(MyGlobalObjectDefinition):
|
||||||
Out("""
|
Out("""
|
||||||
if (v == Py_None) { *p_itself = NULL; return 1; }
|
if (v == Py_None) { *p_itself = NULL; return 1; }
|
||||||
if (PyString_Check(v)) {
|
if (PyString_Check(v)) {
|
||||||
char *cStr = PyString_AsString(v);
|
char *cStr;
|
||||||
*p_itself = CFStringCreateWithCString((CFAllocatorRef)NULL, cStr, 0);
|
if (!PyArg_Parse(v, "et", "ascii", &cStr))
|
||||||
|
return NULL;
|
||||||
|
*p_itself = CFStringCreateWithCString((CFAllocatorRef)NULL, cStr, kCFStringEncodingASCII);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
if (PyUnicode_Check(v)) {
|
if (PyUnicode_Check(v)) {
|
||||||
|
|
|
@ -292,8 +292,9 @@ PyCF_Python2CF_string(PyObject *src, CFStringRef *dst) {
|
||||||
UniChar *unichars;
|
UniChar *unichars;
|
||||||
|
|
||||||
if (PyString_Check(src)) {
|
if (PyString_Check(src)) {
|
||||||
if ((chars = PyString_AsString(src)) == NULL ) goto err;
|
if (!PyArg_Parse(src, "es", NULL, &chars))
|
||||||
*dst = CFStringCreateWithCString((CFAllocatorRef)NULL, chars, 0);
|
return NULL; /* This error is more descriptive than the general one below */
|
||||||
|
*dst = CFStringCreateWithCString((CFAllocatorRef)NULL, chars, kCFStringEncodingASCII);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
if (PyUnicode_Check(src)) {
|
if (PyUnicode_Check(src)) {
|
||||||
|
|
Loading…
Reference in New Issue