~ubuntu-branches/debian/squeeze/ntp/squeeze-201010051545

« back to all changes in this revision

Viewing changes to libparse/parse.c

  • Committer: Bazaar Package Importer
  • Author(s): Kurt Roeckx
  • Date: 2009-01-05 21:10:03 UTC
  • mfrom: (1.2.4 upstream)
  • Revision ID: james.westby@ubuntu.com-20090105211003-mh6zc3um4k1uhsj7
Tags: 1:4.2.4p4+dfsg-8
It did not properly check the return value of EVP_VerifyFinal
which results in an malformed DSA signature being treated as
a good signature rather than as an error.  (CVE-2009-0021)

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
/*
2
 
 * /src/NTP/ntp-4/libparse/parse.c,v 4.14 1999/11/28 09:13:52 kardel RELEASE_19991128_A
 
2
 * /src/NTP/ntp4-dev/libparse/parse.c,v 4.20 2005/08/06 17:39:40 kardel RELEASE_20050806_A
3
3
 *  
4
 
 * parse.c,v 4.14 1999/11/28 09:13:52 kardel RELEASE_19991128_A
 
4
 * parse.c,v 4.20 2005/08/06 17:39:40 kardel RELEASE_20050806_A
5
5
 *
6
6
 * Parser module for reference clock
7
7
 *
11
11
 * a struct timeval.
12
12
 * when PARSEKERNEL is not defined NTP time stamps will be used.
13
13
 *
14
 
 * Copyright (c) 1992-1998 by Frank Kardel
15
 
 * Friedrich-Alexander Universit�t Erlangen-N�rnberg, Germany
16
 
 *                                    
17
 
 * This program is distributed in the hope that it will be useful,
18
 
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
19
 
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 
14
 * Copyright (c) 1995-2005 by Frank Kardel <kardel <AT> ntp.org>
 
15
 * Copyright (c) 1989-1994 by Frank Kardel, Friedrich-Alexander Universit�t Erlangen-N�rnberg, Germany
 
16
 *
 
17
 * Redistribution and use in source and binary forms, with or without
 
18
 * modification, are permitted provided that the following conditions
 
19
 * are met:
 
20
 * 1. Redistributions of source code must retain the above copyright
 
21
 *    notice, this list of conditions and the following disclaimer.
 
22
 * 2. Redistributions in binary form must reproduce the above copyright
 
23
 *    notice, this list of conditions and the following disclaimer in the
 
24
 *    documentation and/or other materials provided with the distribution.
 
25
 * 3. Neither the name of the author nor the names of its contributors
 
26
 *    may be used to endorse or promote products derived from this software
 
27
 *    without specific prior written permission.
 
28
 *
 
29
 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
 
30
 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 
31
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 
32
 * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
 
33
 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 
34
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
 
35
 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 
36
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 
37
 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 
38
 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 
39
 * SUCH DAMAGE.
20
40
 *
21
41
 */
22
42
 
27
47
#if defined(REFCLOCK) && defined(CLOCK_PARSE)
28
48
 
29
49
#if     !(defined(lint) || defined(__GNUC__))
30
 
static char rcsid[] = "parse.c,v 4.14 1999/11/28 09:13:52 kardel RELEASE_19991128_A";
 
50
static char rcsid[] = "parse.c,v 4.20 2005/08/06 17:39:40 kardel RELEASE_20050806_A";
31
51
#endif
32
52
 
33
53
#include "ntp_fp.h"
189
209
                 */
190
210
                parseio->parse_data[parseio->parse_index] = '\0';
191
211
                memcpy(parseio->parse_ldata, parseio->parse_data, (unsigned)(parseio->parse_index+1));
192
 
                parseio->parse_ldsize = parseio->parse_index+1;
 
212
                parseio->parse_ldsize = parseio->parse_index;
193
213
                updated = PARSE_INP_TIME;
194
214
        }
195
215
                
234
254
         */
235
255
        parseio->parse_data[parseio->parse_index] = '\0';
236
256
        memcpy(parseio->parse_ldata, parseio->parse_data, (unsigned)(parseio->parse_index+1));
237
 
        parseio->parse_ldsize = parseio->parse_index+1;
 
257
        parseio->parse_ldsize = parseio->parse_index;
238
258
        parseio->parse_index = 0;
239
259
        parseprintf(DD_PARSE, ("parse: parse_end: buffer end\n"));
240
260
        return PARSE_INP_TIME;
866
886
 * History:
867
887
 *
868
888
 * parse.c,v
 
889
 * Revision 4.20  2005/08/06 17:39:40  kardel
 
890
 * cleanup size handling wrt/ to buffer boundaries
 
891
 *
 
892
 * Revision 4.19  2005/04/16 17:32:10  kardel
 
893
 * update copyright
 
894
 *
 
895
 * Revision 4.18  2004/11/14 16:11:05  kardel
 
896
 * update Id tags
 
897
 *
 
898
 * Revision 4.17  2004/11/14 15:29:41  kardel
 
899
 * support PPSAPI, upgrade Copyright to Berkeley style
 
900
 *
869
901
 * Revision 4.14  1999/11/28 09:13:52  kardel
870
902
 * RECON_4_0_98F
871
903
 *