From b5ce0e1d0b861dc5521fcd9db6287ed6da817726 Mon Sep 17 00:00:00 2001 From: David Nusinow Date: Sun, 2 Mar 2008 17:12:02 -0500 Subject: [PATCH] Bug #13860: Ensure that the DRI mode is in octal format. --- hw/xfree86/parser/Configint.h | 5 +++++ hw/xfree86/parser/DRI.c | 2 ++ 2 files changed, 7 insertions(+) diff --git a/hw/xfree86/parser/Configint.h b/hw/xfree86/parser/Configint.h index 4d5fbcfab..684a001fc 100644 --- a/hw/xfree86/parser/Configint.h +++ b/hw/xfree86/parser/Configint.h @@ -71,11 +71,14 @@ #include #include "xf86Parser.h" +typedef enum { PARSE_DECIMAL, PARSE_OCTAL, PARSE_HEX } ParserNumType; + typedef struct { int num; /* returned number */ char *str; /* private copy of the return-string */ double realnum; /* returned number as a real */ + ParserNumType numType; /* used to enforce correct number formatting */ } LexRec, *LexPtr; @@ -211,6 +214,8 @@ else\ "\ta numerical group id." #define MULTIPLE_MSG \ "Multiple \"%s\" lines." +#define MUST_BE_OCTAL_MSG \ +"The number \"%d\" given in this section must be in octal (0xxx) format." /* Warning messages */ #define OBSOLETE_MSG \ diff --git a/hw/xfree86/parser/DRI.c b/hw/xfree86/parser/DRI.c index 18644bcc7..68a6db90b 100644 --- a/hw/xfree86/parser/DRI.c +++ b/hw/xfree86/parser/DRI.c @@ -117,6 +117,8 @@ xf86parseDRISection (void) case MODE: if (xf86getSubToken (&(ptr->dri_comment)) != NUMBER) Error (NUMBER_MSG, "Mode"); + if (val.numType != PARSE_OCTAL) + Error (MUST_BE_OCTAL_MSG, val.num); ptr->dri_mode = val.num; break; case BUFFERS: