You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xerces.apache.org by tn...@apache.org on 2003/03/20 21:08:56 UTC

cvs commit: xml-xerces/c/src/xercesc/util XMLExceptMsgs.hpp XMLUTF8Transcoder.cpp

tng         2003/03/20 12:08:55

  Modified:    c/src/xercesc/util XMLExceptMsgs.hpp XMLUTF8Transcoder.cpp
  Log:
  [Bug 12436] Add detection of invalid UTF-8 byte sequences.  Patch from Neil Graham.
  
  Revision  Changes    Path
  1.14      +265 -264  xml-xerces/c/src/xercesc/util/XMLExceptMsgs.hpp
  
  Index: XMLExceptMsgs.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/XMLExceptMsgs.hpp,v
  retrieving revision 1.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- XMLExceptMsgs.hpp	18 Mar 2003 19:39:44 -0000	1.13
  +++ XMLExceptMsgs.hpp	20 Mar 2003 20:08:54 -0000	1.14
  @@ -120,270 +120,271 @@
         , URL_RelativeBaseURL                = 105
         , URL_BaseUnderflow                  = 106
         , URL_BadPortField                   = 107
  -      , Vector_BadIndex                    = 108
  -      , Val_InvalidElemId                  = 109
  -      , Val_CantHaveIntSS                  = 110
  -      , XMLRec_UnknownEncoding             = 111
  -      , Parser_Parse1                      = 112
  -      , Parser_Parse2                      = 113
  -      , Parser_Next1                       = 114
  -      , Parser_Next2                       = 115
  -      , Parser_Next3                       = 116
  -      , Parser_Next4                       = 117
  -      , Parser_Factor1                     = 118
  -      , Parser_Factor2                     = 119
  -      , Parser_Factor3                     = 120
  -      , Parser_Factor4                     = 121
  -      , Parser_Factor5                     = 122
  -      , Parser_Factor6                     = 123
  -      , Parser_Atom1                       = 124
  -      , Parser_Atom2                       = 125
  -      , Parser_Atom3                       = 126
  -      , Parser_Atom4                       = 127
  -      , Parser_Atom5                       = 128
  -      , Parser_CC1                         = 129
  -      , Parser_CC2                         = 130
  -      , Parser_CC3                         = 131
  -      , Parser_CC4                         = 132
  -      , Parser_CC5                         = 133
  -      , Parser_CC6                         = 134
  -      , Parser_Ope1                        = 135
  -      , Parser_Ope2                        = 136
  -      , Parser_Ope3                        = 137
  -      , Parser_Descape1                    = 138
  -      , Parser_Descape2                    = 139
  -      , Parser_Descape3                    = 140
  -      , Parser_Descape4                    = 141
  -      , Parser_Descape5                    = 142
  -      , Parser_Process1                    = 143
  -      , Parser_Process2                    = 144
  -      , Parser_Quantifier1                 = 145
  -      , Parser_Quantifier2                 = 146
  -      , Parser_Quantifier3                 = 147
  -      , Parser_Quantifier4                 = 148
  -      , Parser_Quantifier5                 = 149
  -      , Gen_NoSchemaValidator              = 150
  -      , XUTIL_UnCopyableNodeType           = 151
  -      , SubGrpComparator_NGR               = 152
  -      , FACET_Invalid_Len                  = 153
  -      , FACET_Invalid_maxLen               = 154
  -      , FACET_Invalid_minLen               = 155
  -      , FACET_NonNeg_Len                   = 156
  -      , FACET_NonNeg_maxLen                = 157
  -      , FACET_NonNeg_minLen                = 158
  -      , FACET_Len_maxLen                   = 159
  -      , FACET_Len_minLen                   = 160
  -      , FACET_maxLen_minLen                = 161
  -      , FACET_bool_Pattern                 = 162
  -      , FACET_Invalid_Tag                  = 163
  -      , FACET_Len_baseLen                  = 164
  -      , FACET_minLen_baseminLen            = 165
  -      , FACET_minLen_basemaxLen            = 166
  -      , FACET_maxLen_basemaxLen            = 167
  -      , FACET_maxLen_baseminLen            = 168
  -      , FACET_Len_baseMinLen               = 169
  -      , FACET_Len_baseMaxLen               = 170
  -      , FACET_minLen_baseLen               = 171
  -      , FACET_maxLen_baseLen               = 172
  -      , FACET_enum_base                    = 173
  -      , FACET_Invalid_WS                   = 174
  -      , FACET_WS_collapse                  = 175
  -      , FACET_WS_replace                   = 176
  -      , FACET_Invalid_MaxIncl              = 177
  -      , FACET_Invalid_MaxExcl              = 178
  -      , FACET_Invalid_MinIncl              = 179
  -      , FACET_Invalid_MinExcl              = 180
  -      , FACET_Invalid_TotalDigit           = 181
  -      , FACET_Invalid_FractDigit           = 182
  -      , FACET_PosInt_TotalDigit            = 183
  -      , FACET_NonNeg_FractDigit            = 184
  -      , FACET_max_Incl_Excl                = 185
  -      , FACET_min_Incl_Excl                = 186
  -      , FACET_maxExcl_minExcl              = 187
  -      , FACET_maxExcl_minIncl              = 188
  -      , FACET_maxIncl_minExcl              = 189
  -      , FACET_maxIncl_minIncl              = 190
  -      , FACET_TotDigit_FractDigit          = 191
  -      , FACET_maxIncl_base_maxExcl         = 192
  -      , FACET_maxIncl_base_maxIncl         = 193
  -      , FACET_maxIncl_base_minIncl         = 194
  -      , FACET_maxIncl_base_minExcl         = 195
  -      , FACET_maxExcl_base_maxExcl         = 196
  -      , FACET_maxExcl_base_maxIncl         = 197
  -      , FACET_maxExcl_base_minIncl         = 198
  -      , FACET_maxExcl_base_minExcl         = 199
  -      , FACET_minExcl_base_maxExcl         = 200
  -      , FACET_minExcl_base_maxIncl         = 201
  -      , FACET_minExcl_base_minIncl         = 202
  -      , FACET_minExcl_base_minExcl         = 203
  -      , FACET_minIncl_base_maxExcl         = 204
  -      , FACET_minIncl_base_maxIncl         = 205
  -      , FACET_minIncl_base_minIncl         = 206
  -      , FACET_minIncl_base_minExcl         = 207
  -      , FACET_maxIncl_notFromBase          = 208
  -      , FACET_maxExcl_notFromBase          = 209
  -      , FACET_minIncl_notFromBase          = 210
  -      , FACET_minExcl_notFromBase          = 211
  -      , FACET_totalDigit_base_totalDigit   = 212
  -      , FACET_fractDigit_base_totalDigit   = 213
  -      , FACET_fractDigit_base_fractDigit   = 214
  -      , FACET_maxIncl_base_fixed           = 215
  -      , FACET_maxExcl_base_fixed           = 216
  -      , FACET_minIncl_base_fixed           = 217
  -      , FACET_minExcl_base_fixed           = 218
  -      , FACET_totalDigit_base_fixed        = 219
  -      , FACET_fractDigit_base_fixed        = 220
  -      , FACET_maxLen_base_fixed            = 221
  -      , FACET_minLen_base_fixed            = 222
  -      , FACET_len_base_fixed               = 223
  -      , FACET_whitespace_base_fixed        = 224
  -      , FACET_internalError_fixed          = 225
  -      , FACET_List_Null_baseValidator      = 226
  -      , FACET_Union_Null_memberTypeValidators   = 227
  -      , FACET_Union_Null_baseValidator     = 228
  -      , FACET_Union_invalid_baseValidatorType   = 229
  -      , VALUE_NotMatch_Pattern             = 230
  -      , VALUE_Not_Base64                   = 231
  -      , VALUE_Not_HexBin                   = 232
  -      , VALUE_GT_maxLen                    = 233
  -      , VALUE_LT_minLen                    = 234
  -      , VALUE_NE_Len                       = 235
  -      , VALUE_NotIn_Enumeration            = 236
  -      , VALUE_exceed_totalDigit            = 237
  -      , VALUE_exceed_fractDigit            = 238
  -      , VALUE_exceed_maxIncl               = 239
  -      , VALUE_exceed_maxExcl               = 240
  -      , VALUE_exceed_minIncl               = 241
  -      , VALUE_exceed_minExcl               = 242
  -      , VALUE_WS_replaced                  = 243
  -      , VALUE_WS_collapsed                 = 244
  -      , VALUE_Invalid_NCName               = 245
  -      , VALUE_Invalid_Name                 = 246
  -      , VALUE_ID_Not_Unique                = 247
  -      , VALUE_ENTITY_Invalid               = 248
  -      , VALUE_QName_Invalid                = 249
  -      , VALUE_NOTATION_Invalid             = 250
  -      , VALUE_no_match_memberType          = 251
  -      , VALUE_URI_Malformed                = 252
  -      , XMLNUM_emptyString                 = 253
  -      , XMLNUM_WSString                    = 254
  -      , XMLNUM_2ManyDecPoint               = 255
  -      , XMLNUM_Inv_chars                   = 256
  -      , XMLNUM_null_ptr                    = 257
  -      , XMLNUM_URI_Component_Empty         = 258
  -      , XMLNUM_URI_Component_for_GenURI_Only   = 259
  -      , XMLNUM_URI_Component_Invalid_EscapeSequence   = 260
  -      , XMLNUM_URI_Component_Invalid_Char   = 261
  -      , XMLNUM_URI_Component_Set_Null      = 262
  -      , XMLNUM_URI_Component_Not_Conformant   = 263
  -      , XMLNUM_URI_No_Scheme               = 264
  -      , XMLNUM_URI_NullHost                = 265
  -      , XMLNUM_URI_NullPath                = 266
  -      , XMLNUM_URI_Component_inPath        = 267
  -      , XMLNUM_URI_PortNo_Invalid          = 268
  -      , XMLNUM_DBL_FLT_maxNeg              = 269
  -      , XMLNUM_DBL_FLT_maxPos              = 270
  -      , XMLNUM_DBL_FLT_minNegPos           = 271
  -      , XMLNUM_DBL_FLT_InvalidType         = 272
  -      , XMLNUM_DBL_FLT_No_Exponent         = 273
  -      , Regex_Result_Not_Set               = 274
  -      , Regex_CompactRangesError           = 275
  -      , Regex_MergeRangesTypeMismatch      = 276
  -      , Regex_SubtractRangesError          = 277
  -      , Regex_IntersectRangesError         = 278
  -      , Regex_ComplementRangesInvalidArg   = 279
  -      , Regex_InvalidCategoryName          = 280
  -      , Regex_KeywordNotFound              = 281
  -      , Regex_BadRefNo                     = 282
  -      , Regex_UnknownOption                = 283
  -      , Regex_UnknownTokenType             = 284
  -      , Regex_RangeTokenGetError           = 285
  -      , Regex_NotSupported                 = 286
  -      , Regex_InvalidChildIndex            = 287
  -      , Regex_RepPatMatchesZeroString      = 288
  -      , Regex_InvalidRepPattern            = 289
  -      , NEL_RepeatedCalls                  = 290
  -      , RethrowError                       = 291
  -      , Out_Of_Memory                      = 292
  -      , DV_InvalidOperation                = 293
  -      , XPath_NoAttrSelector               = 294
  -      , XPath_NoUnionAtStart               = 295
  -      , XPath_NoMultipleUnion              = 296
  -      , XPath_MissingAttr                  = 297
  -      , XPath_ExpectedToken1               = 298
  -      , XPath_PrefixNoURI                  = 299
  -      , XPath_NoDoubleColon                = 300
  -      , XPath_ExpectedStep1                = 301
  -      , XPath_ExpectedStep2                = 302
  -      , XPath_ExpectedStep3                = 303
  -      , XPath_NoForwardSlash               = 304
  -      , XPath_NoDoubleForwardSlash         = 305
  -      , XPath_NoForwardSlashAtStart        = 306
  -      , XPath_NoSelectionOfRoot            = 307
  -      , XPath_EmptyExpr                    = 308
  -      , XPath_NoUnionAtEnd                 = 309
  -      , XPath_InvalidChar                  = 310
  -      , XPath_TokenNotSupported            = 311
  -      , XPath_FindSolution                 = 312
  -      , DateTime_Assert_Buffer_Fail        = 313
  -      , DateTime_dt_missingT               = 314
  -      , DateTime_gDay_invalid              = 315
  -      , DateTime_gMth_invalid              = 316
  -      , DateTime_gMthDay_invalid           = 317
  -      , DateTime_dur_Start_dashP           = 318
  -      , DateTime_dur_noP                   = 319
  -      , DateTime_dur_DashNotFirst          = 320
  -      , DateTime_dur_inv_b4T               = 321
  -      , DateTime_dur_NoTimeAfterT          = 322
  -      , DateTime_dur_NoElementAtAll        = 323
  -      , DateTime_dur_inv_seconds           = 324
  -      , DateTime_date_incomplete           = 325
  -      , DateTime_date_invalid              = 326
  -      , DateTime_time_incomplete           = 327
  -      , DateTime_time_invalid              = 328
  -      , DateTime_ms_noDigit                = 329
  -      , DateTime_ym_incomplete             = 330
  -      , DateTime_ym_invalid                = 331
  -      , DateTime_year_tooShort             = 332
  -      , DateTime_year_leadingZero          = 333
  -      , DateTime_ym_noMonth                = 334
  -      , DateTime_tz_noUTCsign              = 335
  -      , DateTime_tz_stuffAfterZ            = 336
  -      , DateTime_tz_invalid                = 337
  -      , DateTime_year_zero                 = 338
  -      , DateTime_mth_invalid               = 339
  -      , DateTime_day_invalid               = 340
  -      , DateTime_hour_invalid              = 341
  -      , DateTime_min_invalid               = 342
  -      , DateTime_second_invalid            = 343
  -      , DateTime_tz_hh_invalid             = 344
  -      , PD_EmptyBase                       = 345
  -      , PD_NSCompat1                       = 346
  -      , PD_OccurRangeE                     = 347
  -      , PD_NameTypeOK1                     = 348
  -      , PD_NameTypeOK2                     = 349
  -      , PD_NameTypeOK3                     = 350
  -      , PD_NameTypeOK4                     = 351
  -      , PD_NameTypeOK5                     = 352
  -      , PD_NameTypeOK6                     = 353
  -      , PD_NameTypeOK7                     = 354
  -      , PD_RecurseAsIfGroup                = 355
  -      , PD_Recurse1                        = 356
  -      , PD_Recurse2                        = 357
  -      , PD_ForbiddenRes1                   = 358
  -      , PD_ForbiddenRes2                   = 359
  -      , PD_ForbiddenRes3                   = 360
  -      , PD_ForbiddenRes4                   = 361
  -      , PD_NSSubset1                       = 362
  -      , PD_NSSubset2                       = 363
  -      , PD_NSRecurseCheckCardinality1      = 364
  -      , PD_RecurseUnordered                = 365
  -      , PD_MapAndSum                       = 366
  -      , PD_InvalidContentType              = 367
  -      , NodeIDMap_GrowErr                  = 368
  -      , F_HighBounds                       = 369
  -      , E_LowBounds                        = 370
  -      , E_HighBounds                       = 371
  +      , UTF8_FormatError                   = 108
  +      , Vector_BadIndex                    = 109
  +      , Val_InvalidElemId                  = 110
  +      , Val_CantHaveIntSS                  = 111
  +      , XMLRec_UnknownEncoding             = 112
  +      , Parser_Parse1                      = 113
  +      , Parser_Parse2                      = 114
  +      , Parser_Next1                       = 115
  +      , Parser_Next2                       = 116
  +      , Parser_Next3                       = 117
  +      , Parser_Next4                       = 118
  +      , Parser_Factor1                     = 119
  +      , Parser_Factor2                     = 120
  +      , Parser_Factor3                     = 121
  +      , Parser_Factor4                     = 122
  +      , Parser_Factor5                     = 123
  +      , Parser_Factor6                     = 124
  +      , Parser_Atom1                       = 125
  +      , Parser_Atom2                       = 126
  +      , Parser_Atom3                       = 127
  +      , Parser_Atom4                       = 128
  +      , Parser_Atom5                       = 129
  +      , Parser_CC1                         = 130
  +      , Parser_CC2                         = 131
  +      , Parser_CC3                         = 132
  +      , Parser_CC4                         = 133
  +      , Parser_CC5                         = 134
  +      , Parser_CC6                         = 135
  +      , Parser_Ope1                        = 136
  +      , Parser_Ope2                        = 137
  +      , Parser_Ope3                        = 138
  +      , Parser_Descape1                    = 139
  +      , Parser_Descape2                    = 140
  +      , Parser_Descape3                    = 141
  +      , Parser_Descape4                    = 142
  +      , Parser_Descape5                    = 143
  +      , Parser_Process1                    = 144
  +      , Parser_Process2                    = 145
  +      , Parser_Quantifier1                 = 146
  +      , Parser_Quantifier2                 = 147
  +      , Parser_Quantifier3                 = 148
  +      , Parser_Quantifier4                 = 149
  +      , Parser_Quantifier5                 = 150
  +      , Gen_NoSchemaValidator              = 151
  +      , XUTIL_UnCopyableNodeType           = 152
  +      , SubGrpComparator_NGR               = 153
  +      , FACET_Invalid_Len                  = 154
  +      , FACET_Invalid_maxLen               = 155
  +      , FACET_Invalid_minLen               = 156
  +      , FACET_NonNeg_Len                   = 157
  +      , FACET_NonNeg_maxLen                = 158
  +      , FACET_NonNeg_minLen                = 159
  +      , FACET_Len_maxLen                   = 160
  +      , FACET_Len_minLen                   = 161
  +      , FACET_maxLen_minLen                = 162
  +      , FACET_bool_Pattern                 = 163
  +      , FACET_Invalid_Tag                  = 164
  +      , FACET_Len_baseLen                  = 165
  +      , FACET_minLen_baseminLen            = 166
  +      , FACET_minLen_basemaxLen            = 167
  +      , FACET_maxLen_basemaxLen            = 168
  +      , FACET_maxLen_baseminLen            = 169
  +      , FACET_Len_baseMinLen               = 170
  +      , FACET_Len_baseMaxLen               = 171
  +      , FACET_minLen_baseLen               = 172
  +      , FACET_maxLen_baseLen               = 173
  +      , FACET_enum_base                    = 174
  +      , FACET_Invalid_WS                   = 175
  +      , FACET_WS_collapse                  = 176
  +      , FACET_WS_replace                   = 177
  +      , FACET_Invalid_MaxIncl              = 178
  +      , FACET_Invalid_MaxExcl              = 179
  +      , FACET_Invalid_MinIncl              = 180
  +      , FACET_Invalid_MinExcl              = 181
  +      , FACET_Invalid_TotalDigit           = 182
  +      , FACET_Invalid_FractDigit           = 183
  +      , FACET_PosInt_TotalDigit            = 184
  +      , FACET_NonNeg_FractDigit            = 185
  +      , FACET_max_Incl_Excl                = 186
  +      , FACET_min_Incl_Excl                = 187
  +      , FACET_maxExcl_minExcl              = 188
  +      , FACET_maxExcl_minIncl              = 189
  +      , FACET_maxIncl_minExcl              = 190
  +      , FACET_maxIncl_minIncl              = 191
  +      , FACET_TotDigit_FractDigit          = 192
  +      , FACET_maxIncl_base_maxExcl         = 193
  +      , FACET_maxIncl_base_maxIncl         = 194
  +      , FACET_maxIncl_base_minIncl         = 195
  +      , FACET_maxIncl_base_minExcl         = 196
  +      , FACET_maxExcl_base_maxExcl         = 197
  +      , FACET_maxExcl_base_maxIncl         = 198
  +      , FACET_maxExcl_base_minIncl         = 199
  +      , FACET_maxExcl_base_minExcl         = 200
  +      , FACET_minExcl_base_maxExcl         = 201
  +      , FACET_minExcl_base_maxIncl         = 202
  +      , FACET_minExcl_base_minIncl         = 203
  +      , FACET_minExcl_base_minExcl         = 204
  +      , FACET_minIncl_base_maxExcl         = 205
  +      , FACET_minIncl_base_maxIncl         = 206
  +      , FACET_minIncl_base_minIncl         = 207
  +      , FACET_minIncl_base_minExcl         = 208
  +      , FACET_maxIncl_notFromBase          = 209
  +      , FACET_maxExcl_notFromBase          = 210
  +      , FACET_minIncl_notFromBase          = 211
  +      , FACET_minExcl_notFromBase          = 212
  +      , FACET_totalDigit_base_totalDigit   = 213
  +      , FACET_fractDigit_base_totalDigit   = 214
  +      , FACET_fractDigit_base_fractDigit   = 215
  +      , FACET_maxIncl_base_fixed           = 216
  +      , FACET_maxExcl_base_fixed           = 217
  +      , FACET_minIncl_base_fixed           = 218
  +      , FACET_minExcl_base_fixed           = 219
  +      , FACET_totalDigit_base_fixed        = 220
  +      , FACET_fractDigit_base_fixed        = 221
  +      , FACET_maxLen_base_fixed            = 222
  +      , FACET_minLen_base_fixed            = 223
  +      , FACET_len_base_fixed               = 224
  +      , FACET_whitespace_base_fixed        = 225
  +      , FACET_internalError_fixed          = 226
  +      , FACET_List_Null_baseValidator      = 227
  +      , FACET_Union_Null_memberTypeValidators   = 228
  +      , FACET_Union_Null_baseValidator     = 229
  +      , FACET_Union_invalid_baseValidatorType   = 230
  +      , VALUE_NotMatch_Pattern             = 231
  +      , VALUE_Not_Base64                   = 232
  +      , VALUE_Not_HexBin                   = 233
  +      , VALUE_GT_maxLen                    = 234
  +      , VALUE_LT_minLen                    = 235
  +      , VALUE_NE_Len                       = 236
  +      , VALUE_NotIn_Enumeration            = 237
  +      , VALUE_exceed_totalDigit            = 238
  +      , VALUE_exceed_fractDigit            = 239
  +      , VALUE_exceed_maxIncl               = 240
  +      , VALUE_exceed_maxExcl               = 241
  +      , VALUE_exceed_minIncl               = 242
  +      , VALUE_exceed_minExcl               = 243
  +      , VALUE_WS_replaced                  = 244
  +      , VALUE_WS_collapsed                 = 245
  +      , VALUE_Invalid_NCName               = 246
  +      , VALUE_Invalid_Name                 = 247
  +      , VALUE_ID_Not_Unique                = 248
  +      , VALUE_ENTITY_Invalid               = 249
  +      , VALUE_QName_Invalid                = 250
  +      , VALUE_NOTATION_Invalid             = 251
  +      , VALUE_no_match_memberType          = 252
  +      , VALUE_URI_Malformed                = 253
  +      , XMLNUM_emptyString                 = 254
  +      , XMLNUM_WSString                    = 255
  +      , XMLNUM_2ManyDecPoint               = 256
  +      , XMLNUM_Inv_chars                   = 257
  +      , XMLNUM_null_ptr                    = 258
  +      , XMLNUM_URI_Component_Empty         = 259
  +      , XMLNUM_URI_Component_for_GenURI_Only   = 260
  +      , XMLNUM_URI_Component_Invalid_EscapeSequence   = 261
  +      , XMLNUM_URI_Component_Invalid_Char   = 262
  +      , XMLNUM_URI_Component_Set_Null      = 263
  +      , XMLNUM_URI_Component_Not_Conformant   = 264
  +      , XMLNUM_URI_No_Scheme               = 265
  +      , XMLNUM_URI_NullHost                = 266
  +      , XMLNUM_URI_NullPath                = 267
  +      , XMLNUM_URI_Component_inPath        = 268
  +      , XMLNUM_URI_PortNo_Invalid          = 269
  +      , XMLNUM_DBL_FLT_maxNeg              = 270
  +      , XMLNUM_DBL_FLT_maxPos              = 271
  +      , XMLNUM_DBL_FLT_minNegPos           = 272
  +      , XMLNUM_DBL_FLT_InvalidType         = 273
  +      , XMLNUM_DBL_FLT_No_Exponent         = 274
  +      , Regex_Result_Not_Set               = 275
  +      , Regex_CompactRangesError           = 276
  +      , Regex_MergeRangesTypeMismatch      = 277
  +      , Regex_SubtractRangesError          = 278
  +      , Regex_IntersectRangesError         = 279
  +      , Regex_ComplementRangesInvalidArg   = 280
  +      , Regex_InvalidCategoryName          = 281
  +      , Regex_KeywordNotFound              = 282
  +      , Regex_BadRefNo                     = 283
  +      , Regex_UnknownOption                = 284
  +      , Regex_UnknownTokenType             = 285
  +      , Regex_RangeTokenGetError           = 286
  +      , Regex_NotSupported                 = 287
  +      , Regex_InvalidChildIndex            = 288
  +      , Regex_RepPatMatchesZeroString      = 289
  +      , Regex_InvalidRepPattern            = 290
  +      , NEL_RepeatedCalls                  = 291
  +      , RethrowError                       = 292
  +      , Out_Of_Memory                      = 293
  +      , DV_InvalidOperation                = 294
  +      , XPath_NoAttrSelector               = 295
  +      , XPath_NoUnionAtStart               = 296
  +      , XPath_NoMultipleUnion              = 297
  +      , XPath_MissingAttr                  = 298
  +      , XPath_ExpectedToken1               = 299
  +      , XPath_PrefixNoURI                  = 300
  +      , XPath_NoDoubleColon                = 301
  +      , XPath_ExpectedStep1                = 302
  +      , XPath_ExpectedStep2                = 303
  +      , XPath_ExpectedStep3                = 304
  +      , XPath_NoForwardSlash               = 305
  +      , XPath_NoDoubleForwardSlash         = 306
  +      , XPath_NoForwardSlashAtStart        = 307
  +      , XPath_NoSelectionOfRoot            = 308
  +      , XPath_EmptyExpr                    = 309
  +      , XPath_NoUnionAtEnd                 = 310
  +      , XPath_InvalidChar                  = 311
  +      , XPath_TokenNotSupported            = 312
  +      , XPath_FindSolution                 = 313
  +      , DateTime_Assert_Buffer_Fail        = 314
  +      , DateTime_dt_missingT               = 315
  +      , DateTime_gDay_invalid              = 316
  +      , DateTime_gMth_invalid              = 317
  +      , DateTime_gMthDay_invalid           = 318
  +      , DateTime_dur_Start_dashP           = 319
  +      , DateTime_dur_noP                   = 320
  +      , DateTime_dur_DashNotFirst          = 321
  +      , DateTime_dur_inv_b4T               = 322
  +      , DateTime_dur_NoTimeAfterT          = 323
  +      , DateTime_dur_NoElementAtAll        = 324
  +      , DateTime_dur_inv_seconds           = 325
  +      , DateTime_date_incomplete           = 326
  +      , DateTime_date_invalid              = 327
  +      , DateTime_time_incomplete           = 328
  +      , DateTime_time_invalid              = 329
  +      , DateTime_ms_noDigit                = 330
  +      , DateTime_ym_incomplete             = 331
  +      , DateTime_ym_invalid                = 332
  +      , DateTime_year_tooShort             = 333
  +      , DateTime_year_leadingZero          = 334
  +      , DateTime_ym_noMonth                = 335
  +      , DateTime_tz_noUTCsign              = 336
  +      , DateTime_tz_stuffAfterZ            = 337
  +      , DateTime_tz_invalid                = 338
  +      , DateTime_year_zero                 = 339
  +      , DateTime_mth_invalid               = 340
  +      , DateTime_day_invalid               = 341
  +      , DateTime_hour_invalid              = 342
  +      , DateTime_min_invalid               = 343
  +      , DateTime_second_invalid            = 344
  +      , DateTime_tz_hh_invalid             = 345
  +      , PD_EmptyBase                       = 346
  +      , PD_NSCompat1                       = 347
  +      , PD_OccurRangeE                     = 348
  +      , PD_NameTypeOK1                     = 349
  +      , PD_NameTypeOK2                     = 350
  +      , PD_NameTypeOK3                     = 351
  +      , PD_NameTypeOK4                     = 352
  +      , PD_NameTypeOK5                     = 353
  +      , PD_NameTypeOK6                     = 354
  +      , PD_NameTypeOK7                     = 355
  +      , PD_RecurseAsIfGroup                = 356
  +      , PD_Recurse1                        = 357
  +      , PD_Recurse2                        = 358
  +      , PD_ForbiddenRes1                   = 359
  +      , PD_ForbiddenRes2                   = 360
  +      , PD_ForbiddenRes3                   = 361
  +      , PD_ForbiddenRes4                   = 362
  +      , PD_NSSubset1                       = 363
  +      , PD_NSSubset2                       = 364
  +      , PD_NSRecurseCheckCardinality1      = 365
  +      , PD_RecurseUnordered                = 366
  +      , PD_MapAndSum                       = 367
  +      , PD_InvalidContentType              = 368
  +      , NodeIDMap_GrowErr                  = 369
  +      , F_HighBounds                       = 370
  +      , E_LowBounds                        = 371
  +      , E_HighBounds                       = 372
       };
   
   };
  
  
  
  1.4       +60 -13    xml-xerces/c/src/xercesc/util/XMLUTF8Transcoder.cpp
  
  Index: XMLUTF8Transcoder.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/XMLUTF8Transcoder.cpp,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- XMLUTF8Transcoder.cpp	28 Nov 2002 17:39:02 -0000	1.3
  +++ XMLUTF8Transcoder.cpp	20 Mar 2003 20:08:54 -0000	1.4
  @@ -76,6 +76,16 @@
   //  gUTFBytes
   //      A list of counts of trailing bytes for each initial byte in the input.
   //
  +//  gUTFByteIndicator
  +//      For a UTF8 sequence of n bytes, n>=2, the first byte of the
  +//      sequence must contain n 1's followed by precisely 1 0 with the
  +//      rest of the byte containing arbitrary bits.  This array stores
  +//      the required bit pattern for validity checking.
  +//  gUTFByteIndicatorTest
  +//      When bitwise and'd with the observed value, if the observed
  +//      value is correct then a result matching gUTFByteIndicator will
  +//      be produced.
  +//
   //  gUTFOffsets
   //      A list of values to offset each result char type, according to how
   //      many source bytes when into making it.
  @@ -104,6 +114,15 @@
       ,   3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5
   };
   
  +static const XMLByte gUTFByteIndicator[6] =
  +{
  +    0x00, 0xC0, 0xE0, 0xF0, 0xF8, 0xFC
  +};
  +static const XMLByte gUTFByteIndicatorTest[6] =
  +{
  +    0x80, 0xE0, 0xF0, 0xF8, 0xFC, 0xFE
  +};
  +
   static const XMLUInt32 gUTFOffsets[6] =
   {
       0, 0x3080, 0xE2080, 0x3C82080, 0xFA082080, 0x82082080
  @@ -192,20 +211,48 @@
               break;
   
           // Looks ok, so lets build up the value
  -        XMLUInt32 tmpVal = 0;
  -        switch(trailingBytes)
  -        {
  -            case 5 : tmpVal += *srcPtr++; tmpVal <<= 6;
  -            case 4 : tmpVal += *srcPtr++; tmpVal <<= 6;
  -            case 3 : tmpVal += *srcPtr++; tmpVal <<= 6;
  -            case 2 : tmpVal += *srcPtr++; tmpVal <<= 6;
  -            case 1 : tmpVal += *srcPtr++; tmpVal <<= 6;
  -            case 0 : tmpVal += *srcPtr++;
  -                     break;
  +        // or at least let's try to do so--remembering that
  +        // we cannot assume the encoding to be valid:
   
  -            default :
  -                ThrowXML(TranscodingException, XMLExcepts::Trans_BadSrcSeq);
  +        // first, test first byte
  +        if((gUTFByteIndicatorTest[trailingBytes] & *srcPtr) != gUTFByteIndicator[trailingBytes]) {
  +            char pos[2] = {(char)0x31, 0}; 
  +            char len[2] = {(char)trailingBytes+0x31, 0};
  +            char byte[2] = {*srcPtr,0};
  +            ThrowXML3(UTFDataFormatException, XMLExcepts::UTF8_FormatError, pos, byte, len);
  +        }
  +
  +        XMLUInt32 tmpVal = *srcPtr++;
  +        tmpVal <<= 6;
  +        for(unsigned int i=1; i<trailingBytes; i++) 
  +        {
  +            if((*srcPtr & 0xC0) == 0x80) 
  +            {
  +                tmpVal += *srcPtr++; 
  +                tmpVal <<= 6;
  +            } 
  +            else
  +            {
  +                char len[2] = {(char)trailingBytes+0x31, 0};
  +                char pos[2]= {(char)i+0x31, 0};
  +                char byte[2] = {*srcPtr,0};
  +                ThrowXML3(UTFDataFormatException, XMLExcepts::UTF8_FormatError, pos, byte, len);
  +            }
  +        }
  +        if((*srcPtr & 0xC0) == 0x80) 
  +        {
  +            tmpVal += *srcPtr++;
  +        }
  +        else 
  +        {
  +            char len[2] = {(char)trailingBytes+0x31, 0};
  +            char byte[2] = {*srcPtr,0};
  +            ThrowXML3(UTFDataFormatException, XMLExcepts::UTF8_FormatError, len, byte, len);
           }
  +        // since trailingBytes comes from an array, this logic is redundant
  +        //  default :
  +        //      ThrowXML(TranscodingException, XMLExcepts::Trans_BadSrcSeq);
  +        //}
           tmpVal -= gUTFOffsets[trailingBytes];
   
           //
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: xerces-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: xerces-cvs-help@xml.apache.org