Commit b608f56
authored
Fix SQLDescribeCol numeric attribute param handling (#306)
The last parameter of SQLDescribeCol(), the "NumericAttributePtr" is an
out paramter that should always point to a SQLLEN value (for both x64
and x32 builds), despite this value being assigned different width
values.
The x32 API definition uses a "void *" that would allow passing pointers
to various width integers, but the spec does require an SQLLEN and other
drivers and apps alligned to it. Some apps seem however to not cast down
to the width corresponding to the various attributes, which can lead to
incorrect behaviour. The driver now scales up all values to an SQLLEN.1 parent 23133dc commit b608f56
File tree
5 files changed
+161
-29
lines changed- driver
- test
5 files changed
+161
-29
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1503 | 1503 | | |
1504 | 1504 | | |
1505 | 1505 | | |
1506 | | - | |
| 1506 | + | |
1507 | 1507 | | |
1508 | 1508 | | |
1509 | 1509 | | |
| |||
3478 | 3478 | | |
3479 | 3479 | | |
3480 | 3480 | | |
3481 | | - | |
3482 | | - | |
| 3481 | + | |
| 3482 | + | |
3483 | 3483 | | |
3484 | 3484 | | |
3485 | 3485 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
837 | 837 | | |
838 | 838 | | |
839 | 839 | | |
840 | | - | |
841 | 840 | | |
842 | 841 | | |
843 | | - | |
844 | | - | |
845 | | - | |
846 | | - | |
847 | 842 | | |
848 | 843 | | |
849 | 844 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3957 | 3957 | | |
3958 | 3958 | | |
3959 | 3959 | | |
3960 | | - | |
3961 | 3960 | | |
3962 | | - | |
3963 | | - | |
3964 | | - | |
3965 | 3961 | | |
3966 | 3962 | | |
3967 | 3963 | | |
| |||
3972 | 3968 | | |
3973 | 3969 | | |
3974 | 3970 | | |
3975 | | - | |
3976 | | - | |
3977 | | - | |
3978 | | - | |
3979 | | - | |
3980 | | - | |
3981 | 3971 | | |
3982 | 3972 | | |
3983 | 3973 | | |
| |||
4022 | 4012 | | |
4023 | 4013 | | |
4024 | 4014 | | |
4025 | | - | |
| 4015 | + | |
4026 | 4016 | | |
4027 | 4017 | | |
4028 | 4018 | | |
| |||
4056 | 4046 | | |
4057 | 4047 | | |
4058 | 4048 | | |
4059 | | - | |
| 4049 | + | |
4060 | 4050 | | |
4061 | 4051 | | |
4062 | 4052 | | |
4063 | 4053 | | |
4064 | 4054 | | |
4065 | 4055 | | |
4066 | | - | |
| 4056 | + | |
4067 | 4057 | | |
4068 | 4058 | | |
4069 | 4059 | | |
| |||
4074 | 4064 | | |
4075 | 4065 | | |
4076 | 4066 | | |
4077 | | - | |
| 4067 | + | |
| 4068 | + | |
| 4069 | + | |
4078 | 4070 | | |
4079 | | - | |
| 4071 | + | |
4080 | 4072 | | |
4081 | 4073 | | |
4082 | 4074 | | |
4083 | 4075 | | |
4084 | | - | |
| 4076 | + | |
4085 | 4077 | | |
4086 | 4078 | | |
4087 | 4079 | | |
| |||
4091 | 4083 | | |
4092 | 4084 | | |
4093 | 4085 | | |
4094 | | - | |
4095 | 4086 | | |
4096 | 4087 | | |
4097 | 4088 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
115 | 115 | | |
116 | 116 | | |
117 | 117 | | |
118 | | - | |
119 | 118 | | |
120 | | - | |
121 | | - | |
122 | | - | |
123 | 119 | | |
124 | 120 | | |
125 | 121 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
0 commit comments