~ubuntu-branches/ubuntu/natty/mysql-5.1/natty-proposed

« back to all changes in this revision

Viewing changes to sql/password.c

  • Committer: Package Import Robot
  • Author(s): Marc Deslauriers
  • Date: 2012-02-22 08:30:45 UTC
  • mfrom: (1.4.1)
  • Revision ID: package-import@ubuntu.com-20120222083045-2rd53r4bnyx7qus4
Tags: 5.1.61-0ubuntu0.11.04.1
* SECURITY UPDATE: Update to 5.1.61 to fix multiple security issues
  (LP: #937869)
  - http://www.oracle.com/technetwork/topics/security/cpujan2012-366304.html
  - CVE-2011-2262
  - CVE-2012-0075
  - CVE-2012-0112
  - CVE-2012-0113
  - CVE-2012-0114
  - CVE-2012-0115
  - CVE-2012-0116
  - CVE-2012-0117
  - CVE-2012-0118
  - CVE-2012-0119
  - CVE-2012-0120
  - CVE-2012-0484
  - CVE-2012-0485
  - CVE-2012-0486
  - CVE-2012-0487
  - CVE-2012-0488
  - CVE-2012-0489
  - CVE-2012-0490
  - CVE-2012-0491
  - CVE-2012-0492
  - CVE-2012-0493
  - CVE-2012-0494
  - CVE-2012-0495
  - CVE-2012-0496

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/* Copyright (C) 2000-2006 MySQL AB
 
1
/*
 
2
   Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
2
3
 
3
4
   This program is free software; you can redistribute it and/or modify
4
5
   it under the terms of the GNU General Public License as published by
11
12
 
12
13
   You should have received a copy of the GNU General Public License
13
14
   along with this program; if not, write to the Free Software
14
 
   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA */
 
15
   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
 
16
*/
15
17
 
16
18
/* password checking routines */
17
19
/*****************************************************************************
204
206
}
205
207
 
206
208
 
207
 
/*
208
 
    Check scrambled message
209
 
    Used in pre 4.1 password handling
210
 
  SYNOPSIS
211
 
    check_scramble_323()
212
 
    scrambled  scrambled message to check.
213
 
    message    original random message which was used for scrambling; must
214
 
               be exactly SCRAMBLED_LENGTH_323 bytes long and
215
 
               NULL-terminated.
216
 
    hash_pass  password which should be used for scrambling
217
 
    All params are IN.
218
 
 
219
 
  RETURN VALUE
220
 
    0 - password correct
221
 
   !0 - password invalid
 
209
/**
 
210
  Check scrambled message. Used in pre 4.1 password handling.
 
211
 
 
212
  @param scrambled  Scrambled message to check.
 
213
  @param message    Original random message which was used for scrambling.
 
214
  @param hash_pass  Password which should be used for scrambling.
 
215
 
 
216
  @remark scrambled and message must be SCRAMBLED_LENGTH_323 bytes long.
 
217
 
 
218
  @return FALSE if password is correct, TRUE otherwise.
222
219
*/
223
220
 
224
221
my_bool
227
224
{
228
225
  struct rand_struct rand_st;
229
226
  ulong hash_message[2];
230
 
  char buff[16],*to,extra;                      /* Big enough for check */
 
227
  /* Big enough for checks. */
 
228
  char buff[16], scrambled_buff[SCRAMBLE_LENGTH_323 + 1];
 
229
  char *to, extra;
231
230
  const char *pos;
232
231
 
 
232
  /* Ensure that the scrambled message is null-terminated. */
 
233
  memcpy(scrambled_buff, scrambled, SCRAMBLE_LENGTH_323);
 
234
  scrambled_buff[SCRAMBLE_LENGTH_323]= '\0';
 
235
  scrambled= scrambled_buff;
 
236
 
233
237
  hash_password(hash_message, message, SCRAMBLE_LENGTH_323);
234
238
  randominit(&rand_st,hash_pass[0] ^ hash_message[0],
235
239
             hash_pass[1] ^ hash_message[1]);