Uploaded image for project: 'MariaDB Connector/C'
  1. MariaDB Connector/C
  2. CONC-407

mysql_stmt_fetch: required buffer for zerofil integer is 1 more than reported length

Details

    • Bug
    • Status: Open (View Workflow)
    • Major
    • Resolution: Unresolved
    • 3.0.9
    • 3.1
    • None
    • None

    Description

      mysql_fetch_fields() says a "smallint(5) unsigned zerofill" has a (max)length of 5.

      However If I use mysql_stmt_fetch() with a MYSQL_BIND with buffer_length of 5 I get return code 101 (MYSQL_DATA_TRUNCATED).

      With a buffer of 6 it works fine.

      With 10.3.11 a buffer of 5 was working fine.

      Related: https://github.com/perl5-dbi/DBD-mysql/issues/304

      Attachments

        Issue Links

          Activity

            dveeden Daniël van Eeden created issue -
            dveeden Daniël van Eeden made changes -
            Field Original Value New Value
            dveeden Daniël van Eeden made changes -
            Attachment mariadb103_prepare_zerofil.c [ 47525 ]
            Attachment test.sh [ 47526 ]

            Output of attached testcase:

            Client compile version: 100311
            Client runtime version: 10.3.11
            Server version: 100311
            Field 0 length: 5
            Field 0 max_length: 5
            Result: 00001
             
            Buffer length: 1
            mysql_stmt_fetch result: 0
            Result: 1�/E (prepared statement)
             
            Buffer length: 2
            mysql_stmt_fetch result: 101
            Result: 00/E (prepared statement)
             
            Buffer length: 3
            mysql_stmt_fetch result: 101
            Result: 000E (prepared statement)
             
            Buffer length: 4
            mysql_stmt_fetch result: 101
            Result: 0000 (prepared statement)
             
            Buffer length: 5
            mysql_stmt_fetch result: 0
            Result: 00001 (prepared statement)
             
            Buffer length: 6
            mysql_stmt_fetch result: 0
            Result: 00001 (prepared statement)
            Client compile version: 100313
            Client runtime version: 10.3.13
            Server version: 100313
            Field 0 length: 5
            Field 0 max_length: 5
            Result: 00001
             
            Buffer length: 1
            mysql_stmt_fetch result: 101
            Result: 1 (prepared statement)
             
            Buffer length: 2
            mysql_stmt_fetch result: 101
            Result: 1 (prepared statement)
             
            Buffer length: 3
            mysql_stmt_fetch result: 101
            Result: 1 (prepared statement)
             
            Buffer length: 4
            mysql_stmt_fetch result: 101
            Result: 1 (prepared statement)
             
            Buffer length: 5
            mysql_stmt_fetch result: 101
            Result: 1 (prepared statement)
             
            Buffer length: 6
            mysql_stmt_fetch result: 0
            Result: 00001 (prepared statement)
            
            

            dveeden Daniël van Eeden added a comment - Output of attached testcase: Client compile version: 100311 Client runtime version: 10.3.11 Server version: 100311 Field 0 length: 5 Field 0 max_length: 5 Result: 00001   Buffer length: 1 mysql_stmt_fetch result: 0 Result: 1�/E (prepared statement)   Buffer length: 2 mysql_stmt_fetch result: 101 Result: 00/E (prepared statement)   Buffer length: 3 mysql_stmt_fetch result: 101 Result: 000E (prepared statement)   Buffer length: 4 mysql_stmt_fetch result: 101 Result: 0000 (prepared statement)   Buffer length: 5 mysql_stmt_fetch result: 0 Result: 00001 (prepared statement)   Buffer length: 6 mysql_stmt_fetch result: 0 Result: 00001 (prepared statement) Client compile version: 100313 Client runtime version: 10.3.13 Server version: 100313 Field 0 length: 5 Field 0 max_length: 5 Result: 00001   Buffer length: 1 mysql_stmt_fetch result: 101 Result: 1 (prepared statement)   Buffer length: 2 mysql_stmt_fetch result: 101 Result: 1 (prepared statement)   Buffer length: 3 mysql_stmt_fetch result: 101 Result: 1 (prepared statement)   Buffer length: 4 mysql_stmt_fetch result: 101 Result: 1 (prepared statement)   Buffer length: 5 mysql_stmt_fetch result: 101 Result: 1 (prepared statement)   Buffer length: 6 mysql_stmt_fetch result: 0 Result: 00001 (prepared statement)
            elenst Elena Stepanova made changes -
            Assignee Georg Richter [ georg ]
            elenst Elena Stepanova made changes -
            Fix Version/s 10.3 [ 22126 ]
            serg Sergei Golubchik made changes -
            Fix Version/s 10.4 [ 22408 ]
            serg Sergei Golubchik made changes -
            Component/s libmariadb [ 14006 ]
            Fix Version/s 3.0.10 [ 23414 ]
            Fix Version/s 10.3 [ 22126 ]
            Fix Version/s 10.4 [ 22408 ]
            Key MDEV-18823 CONC-407
            Affects Version/s 3.0.9 [ 23243 ]
            Affects Version/s 10.3.13 [ 23215 ]
            Workflow MariaDB v3 [ 92979 ] MariaDB connectors [ 96636 ]
            Project MariaDB Server [ 10000 ] MariaDB Connector/C [ 10300 ]
            georg Georg Richter made changes -
            Fix Version/s 3.1.13 [ 25621 ]
            Fix Version/s 3.0.10 [ 23414 ]
            ralf.gebhardt Ralf Gebhardt made changes -
            Fix Version/s 3.1 [ 23223 ]
            Fix Version/s 3.1.13 [ 25621 ]
            julien.fritsch Julien Fritsch made changes -
            Workflow MariaDB connectors [ 96636 ] MariaDB v4 [ 160842 ]

            People

              georg Georg Richter
              dveeden Daniël van Eeden
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:

                Git Integration

                  Error rendering 'com.xiplink.jira.git.jira_git_plugin:git-issue-webpanel'. Please contact your Jira administrators.