~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to libdrizzle/pack.cc

  • Committer: Mark Atwood
  • Date: 2011-12-22 04:39:00 UTC
  • mfrom: (2472.1.2 drizzle-build)
  • Revision ID: me@mark.atwood.name-20111222043900-utca466m80z3gj61
mergeĀ lp:~brianaker/drizzle/null-safety-fix-libdrizzle

Show diffs side-by-side

added added

removed removed

Lines of Context:
101
101
  uint64_t length;
102
102
  uint8_t bytes;
103
103
 
 
104
  drizzle_return_t unused_ret;
 
105
  if (ret_ptr == NULL)
 
106
  {
 
107
    ret_ptr= &unused_ret;
 
108
  }
 
109
 
 
110
  if (con == NULL)
 
111
  {
 
112
    *ret_ptr= DRIZZLE_RETURN_INVALID_ARGUMENT;
 
113
    return 0;
 
114
  }
 
115
 
104
116
  if (con->buffer_ptr[0] < 251)
105
117
  {
106
118
    length= (uint64_t)(con->buffer_ptr[0]);
146
158
 
147
159
uint8_t *drizzle_pack_string(char *string, uint8_t *ptr)
148
160
{
 
161
  if (string == NULL)
 
162
  {
 
163
    return NULL;
 
164
  }
 
165
 
149
166
  uint64_t size= strlen(string);
150
167
 
151
168
  ptr= drizzle_pack_length(size, ptr);
162
179
                                       uint64_t max_length)
163
180
{
164
181
  drizzle_return_t ret= DRIZZLE_RETURN_OK;
165
 
  uint64_t length;
166
 
 
167
 
  length= drizzle_unpack_length(con, &ret);
 
182
 
 
183
  if (con == NULL)
 
184
  {
 
185
    return DRIZZLE_RETURN_INVALID_ARGUMENT;
 
186
  }
 
187
 
 
188
  uint64_t length= drizzle_unpack_length(con, &ret);
168
189
  if (ret != DRIZZLE_RETURN_OK)
169
190
  {
170
191
    if (ret == DRIZZLE_RETURN_NULL_SIZE)
199
220
uint8_t *drizzle_pack_auth(drizzle_con_st *con, uint8_t *ptr,
200
221
                           drizzle_return_t *ret_ptr)
201
222
{
 
223
  drizzle_return_t unused_ret;
 
224
  if (ret_ptr == NULL)
 
225
  {
 
226
    ret_ptr= &unused_ret;
 
227
  }
 
228
 
 
229
  if (con == NULL)
 
230
  {
 
231
    *ret_ptr= DRIZZLE_RETURN_INVALID_ARGUMENT;
 
232
    return NULL;
 
233
  }
 
234
 
202
235
  if (con->user[0] != 0)
203
236
  {
204
237
    memcpy(ptr, con->user, strlen(con->user));
267
300
static drizzle_return_t _pack_scramble_hash(drizzle_con_st *con,
268
301
                                            uint8_t *buffer)
269
302
{
270
 
  uint32_t x;
271
303
  SHA1_CTX ctx;
272
304
  uint8_t hash_tmp1[SHA1_DIGEST_LENGTH];
273
305
  uint8_t hash_tmp2[SHA1_DIGEST_LENGTH];
304
336
  SHA1Final(buffer, &ctx);
305
337
 
306
338
  /* Fourth, xor the last hash against the first password hash. */
307
 
  x= 0;
308
 
  for (; x < SHA1_DIGEST_LENGTH; x++)
 
339
  uint32_t x;
 
340
  for (uint32_t x= 0; x < SHA1_DIGEST_LENGTH; x++)
 
341
  {
309
342
    buffer[x]= buffer[x] ^ hash_tmp1[x];
 
343
  }
310
344
 
311
345
  return DRIZZLE_RETURN_OK;
312
346
}