Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!decvax!wivax!linus!genrad!grkermit!mit-vax!eagle!harpo!utah-cs!sask!hssg40!adec23!eric From: eric@adec23.UUCP Newsgroups: net.lang.c Subject: Re: Wideranging Bug in /lib/cpp Message-ID: <59@adec23.UUCP> Date: Wed, 1-Jun-83 11:02:50 EDT Article-I.D.: adec23.59 Posted: Wed Jun 1 11:02:50 1983 Date-Received: Tue, 7-Jun-83 12:16:51 EDT References: populi.583 Lines: 20 The problem noted by Harry Weeks (ucbvax!G:alpines) is caused by an error in the lexical analyzer portion of the C preprocessor. The character to hexadecimal conversion code looks like: case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': t = c-'a'; if (b>10) break; case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': t = c - 'A'; if (b>10) break; The bug can be fixed by changing this to: case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': t = c-'a'+10; if (b>10) break; case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': t = c - 'A'+10; if (b>10) break; Eric Norum Advanced Digital Engineering Corporation (..!utah-cs!sask!hssg40!adec23!eric)