Details
-
Bug
-
Status: Closed (View Workflow)
-
Blocker
-
Resolution: Fixed
-
None
-
None
Description
libmariadb/mariadb_lib.c
...
|
for (i=0; i < field_count; i++) |
{
|
uint length= (uint)(row->data[i+1] - row->data[i] - 1);
|
if (!row->data[i] && row->data[i][length]) |
goto error; |
...
|
Even if row->data[i] is NULL we still continue condition evaluation and dereference NULL pointer in row->data[i][length]. Possibly || should be used instead of &&.
Attachments
Activity
Field | Original Value | New Value |
---|---|---|
Key |
|
|
Project | MariaDB Server [ 10000 ] | MariaDB Connector/C [ 10300 ] |
Assignee | Georg Richter [ georg ] |
Fix Version/s | 3.1 [ 23223 ] |
Priority | Major [ 3 ] | Blocker [ 1 ] |
Component/s | Internal [ 16816 ] | |
Fix Version/s | 3.1.21 [ 28612 ] | |
Fix Version/s | 3.1 [ 23223 ] | |
Resolution | Fixed [ 1 ] | |
Status | Open [ 1 ] | Closed [ 6 ] |
This was already fixed in rev. a3bba4639f55148c59a28a506df8a2b88e5e83ab (C/C vers. 3.1.21)