MAINTAINERS: bug-gnu-utils@prep.ai.mit.edu SUBJECT: Bug in GNU as 2.81 (with patch) The function operator() in expr.c can return a bad value if the input character is out of range. This is particularly problematic on a machine like mine (GNU/Linux, Red Hat 5.0), where char is a signed type and hence can be negative. My system will dump core with the right input. My patch simply replaces lookups in the op_encoding[] array with calls to a function that first ensures that the index is in range, exiting fatally if not. A better solution might be to change the input array to have the type unsigned char. A uuencoded version of the problematic input file follows: begin 664 gas-bad-input.s-max M#]S+Z-$N*,.:JB>:%=SZ,M]R&U-^\4)ZS"`(<-E^!`@ MZ+(=?X@GHN%J>0$#,(T(UV)TH]RYJ\?HJF>KCF`ZK#K+E==M,GVDKV!9RQ%XW-TP>BJ-]7OV+OM[O@#-WGL"H`S6#S=3K M^"R`Z6]=(*4HO*_*N`W'PLLEL>NR_*NA@Y%[9>/O(-B*J8 MSNSB\QVM2\2489)^J^.T2A[BD]AYR^XO*:R@M#3*30*V+W126SX6[YXH[,D+ MH!,H`B5_>N_M*)B9R$Q,$AC,1T=!F*%^KA`=U?ME7QMW!AP;A14*,A#]WS%:R6E,-S9S3[[Q=V4"_A& M)9)Z:KVV>57#LDT+],,'.2XK7=P'-JG#L.Z@1/@9B1TJ!(;FN7X[_*\'AB/) MC%MVMK=3/&S[_AQI'V!A-VA^8.J#Q22!?R`PAB533[$MQ>9DER//DJ!K^SY* MVW2QV%.<7)>_7!=>"YR"W&JR"JZ9[$6[.U?:I=$9[JP,((7>NV!U^;L+UL6F M6"*0"RL^(Y8#7=!9-_4J3V-5VH+9N+PYK+5SMXNXW&/9;.R#*@\9+&MHA"%= M+>_`@ETCHER4]&4\2X*5<1.1MPSMVJW([2$MB+NRVOE;>E]*6QH/K]>%ZZ$'_Q,9 M$\]?XV)'3^7J$8BU MOVBI-0I3O`_=[GCSX,5NB]0N#D_\;+%>,_]#'9#*4