python-mysqlclient/MySQL-python-Py_ssize.patch
Ondřej Súkup 6c4b12b7d4 Accepting request 619460 from home:awissu
- Switch to fork of MySQLdb1
- Update a package description
- Build with python3 and python2 (singlespec)
- Mark obsolete packages: python-mysql, python-MySQL-python
- Spec file cleanup
- Fix build on non-SUSE distros by conditionalizing Recommends: tag
- Update to version 1.2.4
  + No changelog available
- Set correct Group : Development/Languages/Python
- Use download Url as source
- Spec file general clean-up
- Add MySQL-python-1.2.4-dont-use-python-distribute.patch; don't try
  to use unavailable python-distribute
- Remove depreciate AutoReqProv, %{py_requires} and # norootforbuild tags
- Add unzip requirement to support tarball format
- Add python-Sphinx requirement and generate html documentation
- Remove --record-rpm=INSTALLED_FILES option and add %{python_sitearch}
  in %files instead
- Package GPL-2.0, HISTORY and Sphinx documentation
- fix the previous fix, patch went upstream
- update to 1.2.3
  - no upstream changelog available 
- taking out the reconnect patch as the upstream sources contain
  a very specific comment that this means trouble
- removed usage of deprecated sets module (bnc#462974)
- update to 1.2.2
  - various bugfixes
  - much better support for mysql5
  - python2.5 support (crude, though, let's keep our patch for a while)
  - switch from distutils to setuptools
- added patch supporting reconnect in mysql5
- update to 1.2.1_p2
  - support for some new features of mysql 4.1 and 5.0
- fixes for 64bit bugs due to PEP353
- updated to reflect python changes due to #149809
- converted neededforbuild to BuildRequires
- update to 1.2.0
- update to 1.1.9 (MySQL 4.1 support)
- updated to 1.1.1
- fixed lib64 build
- update to 1.1.0
- drop python 2.1 support
- build as user
- updated to 0.9.3a2:
  * Add some support for Python 2.3 datetime classes.
  * Removed some casts in _mysql_init() that caused problems with
    Python 2.3. The type for tp_free was changed from destructor
    to freefunc. Removing the casts make both 2.2 and 2.3 happy.
  * Fixed the bug that prevented member access.
  * Embedded server support. Can't get it use InnoDB tables yet.
    However, MyISAM (default) tables seem to work fine.
- one source package for both python versions
- added few more files to docs
- builds on lib64
- updated to 0.9.2
- use record-rpm
- use versioned dependency on python
- using build root
- file list is correct on lib64 arches
- up to 0.9.1 to make it build on python-2.2 
- Add mysql-shared to neededforbuild.
- initial version 0.9.0

OBS-URL: https://build.opensuse.org/request/show/619460
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-mysqlclient?expand=0&rev=1
2018-06-30 08:55:38 +00:00

42 lines
1.4 KiB
Diff

diff -ruN mysqlclient-1.3.13.orig/_mysql.c mysqlclient-1.3.13/_mysql.c
--- mysqlclient-1.3.13.orig/_mysql.c 2017-12-21 14:09:51.000000000 +0300
+++ mysqlclient-1.3.13/_mysql.c 2018-06-28 01:04:11.433787292 +0300
@@ -225,7 +225,7 @@
PyObject *kwargs) {
static char *kwlist[] = {"args", "groups", NULL};
char **cmd_args_c=NULL, **groups_c=NULL, *s;
- int cmd_argc=0, i, groupc;
+ Py_ssize_t cmd_argc=0, i, groupc;
PyObject *cmd_args=NULL, *groups=NULL, *ret=NULL, *item;
if (_mysql_server_init_done) {
@@ -249,6 +249,10 @@
PyErr_SetString(PyExc_TypeError,
"args could not be sized");
goto finish;
+ } else if (cmd_argc > INT_MAX) {
+ PyErr_SetString(PyExc_ValueError,
+ "more than INT_MAX args, this is unsupported");
+ goto finish;
}
cmd_args_c = (char **) PyMem_Malloc(cmd_argc*sizeof(char *));
for (i=0; i< cmd_argc; i++) {
@@ -415,7 +419,7 @@
else if (PySequence_Check(fun)) {
long flags = fields[i].flags;
PyObject *fun2=NULL;
- int j, n2=PySequence_Size(fun);
+ Py_ssize_t j, n2=PySequence_Size(fun);
if (fields[i].charsetnr != 63) { /* maaagic */
flags &= ~BINARY_FLAG;
}
@@ -1181,7 +1185,7 @@
PyObject *args)
{
PyObject *o=NULL, *d=NULL, *r=NULL, *item, *quoted;
- int i, n;
+ Py_ssize_t i, n;
if (!PyArg_ParseTuple(args, "OO:escape_sequence", &o, &d))
goto error;
if (!PyMapping_Check(d)) {