1<?xml version="1.0" encoding="utf-8"?> 2<rules version="1.0"> 3 4<rule> 5 <id> 6 Added_Virtual_Method 7 </id> 8 <severity> 9 High 10 </severity> 11 <kind> 12 V-table 13 </kind> 14 <change> 15 Virtual method @target has been added to this class. 16 </change> 17 <effect> 18 The layout of v-table has been changed. Call of any virtual method at higher position in this class or its subclasses may result in crash or incorrect behavior of applications. 19 </effect> 20 <overcome> 21 You should add several padding virtual methods at end of class declaration and use them one by one in the course of interface evolution. 22 </overcome> 23</rule> 24 25<rule> 26 <id> 27 Added_Pure_Virtual_Method 28 </id> 29 <severity> 30 High 31 </severity> 32 <kind> 33 V-table 34 </kind> 35 <change> 36 Pure virtual method @target has been added to this class. 37 </change> 38 <effect> 39 1) Applications will not provide the implementation for this pure virtual method and therefore cause a crash in the library trying to call this method. 40 2) The layout of v-table has been changed. Call of any virtual method at higher position in this class or its subclasses may result in crash or incorrect behavior of applications. 41 </effect> 42</rule> 43 44<rule> 45 <id> 46 Added_Virtual_Method_At_End_Of_Leaf_Copying_Class 47 </id> 48 <severity> 49 Medium 50 </severity> 51 <kind> 52 V-table 53 </kind> 54 <change> 55 Virtual method @target has been added to this class. 56 </change> 57 <effect> 58 The layout of v-table has been changed. This leaf class has no exported constructors and therefore applications will copy an old v-table of the class that will not contain a pointer to added virtual method. Call of any method in this class may result in crash or incorrect behavior of applications. 59 NOTE: if new virtual method is called only from other new methods, then binary compatibility should not be affected. 60 </effect> 61</rule> 62 63<rule> 64 <id> 65 Added_Virtual_Method_At_End_Of_Leaf_Allocable_Class 66 </id> 67 <severity> 68 Safe 69 </severity> 70 <kind> 71 V-table 72 </kind> 73 <change> 74 Virtual method @target has been added to this class. 75 </change> 76 <effect> 77 No effect. You can add virtual functions at end of leaf classes with exported constructors. 78 </effect> 79</rule> 80 81<rule> 82 <id> 83 Added_First_Virtual_Method 84 </id> 85 <severity> 86 High 87 </severity> 88 <kind> 89 V-table 90 </kind> 91 <change> 92 First virtual method @target has been added to this class. 93 </change> 94 <effect> 95 1) The layout of type structure has been shifted by @word_size bytes by the added v-table pointer. 96 2) Size of class has been increased by @word_size bytes. 97 </effect> 98</rule> 99 100<rule> 101 <id> 102 Removed_Virtual_Method 103 </id> 104 <severity> 105 High 106 </severity> 107 <kind> 108 V-table 109 </kind> 110 <change> 111 Virtual method @target has been removed from this class. 112 </change> 113 <effect> 114 The layout of v-table has been changed. Call of this virtual method or any virtual method at higher position in this class or its subclasses may result in crash or incorrect behavior of applications. 115 </effect> 116</rule> 117 118<rule> 119 <id> 120 Removed_Pure_Virtual_Method 121 </id> 122 <severity> 123 High 124 </severity> 125 <kind> 126 V-table 127 </kind> 128 <change> 129 Pure virtual method @target has been removed from this class. 130 </change> 131 <effect> 132 The layout of v-table has been changed. Call of this virtual method or any virtual method at higher position in this class or its subclasses may result in crash or incorrect behavior of applications. 133 </effect> 134</rule> 135 136<rule> 137 <id> 138 Removed_Last_Virtual_Method 139 </id> 140 <severity> 141 High 142 </severity> 143 <kind> 144 V-table 145 </kind> 146 <change> 147 Last virtual method @target has been removed from this class. 148 </change> 149 <effect> 150 1) The layout of type structure has been shifted by @word_size bytes by the removed v-table pointer. 151 2) Size of class has been decreased by @word_size bytes. 152 </effect> 153</rule> 154 155<rule> 156 <id> 157 Virtual_Replacement 158 </id> 159 <severity> 160 Medium 161 </severity> 162 <kind> 163 V-table 164 </kind> 165 <change> 166 Virtual method @target has been added to this class instead of @old_value. 167 </change> 168 <effect> 169 Applications will pass parameters of older replaced method to newly added virtual method. This may result in crash or incorrect behavior of applications. 170 </effect> 171</rule> 172 173<rule> 174 <id> 175 Pure_Virtual_Replacement 176 </id> 177 <severity> 178 Medium 179 </severity> 180 <kind> 181 V-table 182 </kind> 183 <change> 184 Pure virtual method @target has been added to this class instead of @old_value. 185 </change> 186 <effect> 187 Applications will provide an older method to the library instead of expected newely added virtual method. This may result in crash or incorrect behavior of applications. 188 </effect> 189</rule> 190 191<rule> 192 <id> 193 Virtual_Table_Changed_Unknown 194 </id> 195 <severity> 196 Medium 197 </severity> 198 <kind> 199 V-table 200 </kind> 201 <change> 202 The layout of v-table has been changed for **unknown** reason. 203 </change> 204 <effect> 205 Call of any method in this class may result in crash or incorrect behavior of applications. 206 </effect> 207</rule> 208 209<rule> 210 <id> 211 Virtual_Method_Position 212 </id> 213 <severity> 214 High 215 </severity> 216 <kind> 217 V-table 218 </kind> 219 <change> 220 The relative position of virtual method @target has been changed from @old_value to @new_value. 221 </change> 222 <effect> 223 The layout of v-table has been changed. Call of this virtual method may result in crash or incorrect behavior of applications. 224 </effect> 225</rule> 226 227<rule> 228 <id> 229 Pure_Virtual_Method_Position 230 </id> 231 <severity> 232 High 233 </severity> 234 <kind> 235 V-table 236 </kind> 237 <change> 238 The relative position of pure virtual method @target has been changed from @old_value to @new_value. 239 </change> 240 <effect> 241 The layout of v-table has been changed. Call of this pure virtual method implementation may result in crash or incorrect behavior of applications. 242 </effect> 243</rule> 244 245<rule> 246 <id> 247 Overridden_Virtual_Method 248 </id> 249 <severity> 250 Low 251 </severity> 252 <kind> 253 V-table 254 </kind> 255 <change> 256 Virtual method @old_value has been overridden by @new_value. 257 </change> 258 <effect> 259 Method @new_value will be called instead of @old_value by old applications. 260 </effect> 261</rule> 262 263<rule> 264 <id> 265 Overridden_Virtual_Method_B 266 </id> 267 <severity> 268 Low 269 </severity> 270 <kind> 271 V-table 272 </kind> 273 <change> 274 Virtual method @old_value has been overridden by @new_value. 275 </change> 276 <effect> 277 Method @new_value will be called instead of @old_value by old applications. 278 </effect> 279</rule> 280 281<rule> 282 <id> 283 Size_Of_Allocable_Class_Increased 284 </id> 285 <severity> 286 High 287 </severity> 288 <kind> 289 Classes 290 </kind> 291 <change> 292 Size of this class has been increased from @old_size to @new_size. 293 </change> 294 <effect> 295 1) An object of this class can be allocated by the applications and old size will be hardcoded at the compile time. Call of any exported constructor will break the memory of neighboring objects on the stack or heap. 296 2) The memory layout and size of subclasses will be changed. 297 </effect> 298</rule> 299 300<rule> 301 <id> 302 Size_Of_Allocable_Class_Decreased 303 </id> 304 <severity> 305 Medium 306 </severity> 307 <kind> 308 Classes 309 </kind> 310 <change> 311 Size of this class has been decreased from @old_size to @new_size. 312 </change> 313 <effect> 314 Previous accesses of applications to public fields of this class or its subclasses may be incorrect. 315 </effect> 316</rule> 317 318<rule> 319 <id> 320 Size_Of_Copying_Class 321 </id> 322 <severity> 323 High 324 </severity> 325 <kind> 326 Classes 327 </kind> 328 <change> 329 Size of this class has been changed from @old_size to @new_size. 330 </change> 331 <effect> 332 1) The class has only inline or auto-generated constructors which will be copied to applications at compile time and will allocate an older memory layout. Call of any exported method of this class may access a memory outside the allocated objects or inside the older memory structure and result in crash or incorrect behavior of applications. 333 2) The memory layout and size of subclasses will be changed. 334 </effect> 335</rule> 336 337<rule> 338 <id> 339 Base_Class_Position 340 </id> 341 <severity> 342 Low 343 </severity> 344 <kind> 345 Classes 346 </kind> 347 <change> 348 The relative position of class @target has been changed from @old_value to @new_value in the list of base classes. 349 </change> 350 <effect> 351 Possible incorrect access of applications to the memory occupied by the base classes. 352 </effect> 353</rule> 354 355<rule> 356 <id> 357 Base_Class_Became_Virtually_Inherited 358 </id> 359 <severity> 360 Medium 361 </severity> 362 <kind> 363 Classes 364 </kind> 365 <change> 366 Base class @target became **virtually** inherited. 367 </change> 368 <effect> 369 Size, memory layout and v-table layout of this class and subclasses may change. 370 </effect> 371</rule> 372 373<rule> 374 <id> 375 Base_Class_Became_Non_Virtually_Inherited 376 </id> 377 <severity> 378 Medium 379 </severity> 380 <kind> 381 Classes 382 </kind> 383 <change> 384 Base class @target became **non-virtually** inherited. 385 </change> 386 <effect> 387 Size, memory layout and v-table layout of this class and subclasses may change. 388 </effect> 389</rule> 390 391<rule> 392 <id> 393 Added_Base_Class_And_Shift 394 </id> 395 <severity> 396 High 397 </severity> 398 <kind> 399 Classes 400 </kind> 401 <change> 402 Base class @target has been added. 403 </change> 404 <effect> 405 The memory layout in this class has been shifted by @shift bytes. 406 </effect> 407</rule> 408 409<rule> 410 <id> 411 Added_Base_Class_And_Size 412 </id> 413 <severity> 414 High 415 </severity> 416 <kind> 417 Classes 418 </kind> 419 <change> 420 Base class @target has been added. 421 </change> 422 <effect> 423 1) Size of the class has been changed from @old_size to @new_size. 424 2) The memory layout in this class has been shifted by @shift bytes. 425 </effect> 426</rule> 427 428<rule> 429 <id> 430 Added_Base_Class_And_Shift_And_VTable 431 </id> 432 <severity> 433 High 434 </severity> 435 <kind> 436 Classes 437 </kind> 438 <change> 439 Base class @target has been added. 440 </change> 441 <effect> 442 1) The layout of v-table in this class has been changed. 443 2) The memory layout in this class has been shifted by @shift bytes. 444 </effect> 445</rule> 446 447<rule> 448 <id> 449 Added_Base_Class_And_Size_And_VTable 450 </id> 451 <severity> 452 High 453 </severity> 454 <kind> 455 Classes 456 </kind> 457 <change> 458 Base class @target has been added. 459 </change> 460 <effect> 461 1) The layout of v-table in this class has been changed. 462 2) Size of the class has been changed from @old_size to @new_size. 463 3) The memory layout in this class has been shifted by @shift bytes. 464 </effect> 465</rule> 466 467<rule> 468 <id> 469 Added_Base_Class_And_VTable 470 </id> 471 <severity> 472 High 473 </severity> 474 <kind> 475 Classes 476 </kind> 477 <change> 478 Base class @target has been added. 479 </change> 480 <effect> 481 The layout of v-table in this class has been changed. 482 </effect> 483</rule> 484 485<rule> 486 <id> 487 Added_Base_Class 488 </id> 489 <severity> 490 Low 491 </severity> 492 <kind> 493 Classes 494 </kind> 495 <change> 496 Base class @target has been added. 497 </change> 498 <effect> 499 Possible incorrect access of applications to the memory occupied by the base classes. 500 </effect> 501</rule> 502 503<rule> 504 <id> 505 Removed_Base_Class_And_Size 506 </id> 507 <severity> 508 High 509 </severity> 510 <kind> 511 Classes 512 </kind> 513 <change> 514 Base class @target has been removed. 515 </change> 516 <effect> 517 1) Size of the class has been changed from @old_size to @new_size. 518 2) The memory layout in this class has been shifted by @shift bytes. 519 </effect> 520</rule> 521 522<rule> 523 <id> 524 Removed_Base_Class_And_Shift 525 </id> 526 <severity> 527 High 528 </severity> 529 <kind> 530 Classes 531 </kind> 532 <change> 533 Base class @target has been removed. 534 </change> 535 <effect> 536 The memory layout in this class has been shifted by @shift bytes. 537 </effect> 538</rule> 539 540<rule> 541 <id> 542 Removed_Base_Class_And_Shift_And_VTable 543 </id> 544 <severity> 545 High 546 </severity> 547 <kind> 548 Classes 549 </kind> 550 <change> 551 Base class @target has been removed. 552 </change> 553 <effect> 554 1) The layout of v-table in this class has been changed. 555 2) The memory layout in this class has been shifted by @shift bytes. 556 </effect> 557</rule> 558 559<rule> 560 <id> 561 Removed_Base_Class_And_Size_And_VTable 562 </id> 563 <severity> 564 High 565 </severity> 566 <kind> 567 Classes 568 </kind> 569 <change> 570 Base class @target has been removed. 571 </change> 572 <effect> 573 1) The layout of v-table in this class has been changed. 574 2) Size of the class has been changed from @old_size to @new_size. 575 3) The memory layout in this class has been shifted by @shift bytes. 576 </effect> 577</rule> 578 579<rule> 580 <id> 581 Removed_Base_Class_And_VTable 582 </id> 583 <severity> 584 High 585 </severity> 586 <kind> 587 Classes 588 </kind> 589 <change> 590 Base class @target has been removed. 591 </change> 592 <effect> 593 The layout of v-table in this class has been changed. 594 </effect> 595</rule> 596 597<rule> 598 <id> 599 Removed_Base_Class 600 </id> 601 <severity> 602 Low 603 </severity> 604 <kind> 605 Classes 606 </kind> 607 <change> 608 Base class @target has been removed. 609 </change> 610 <effect> 611 Possible incorrect access of applications to the memory occupied by the base classes. 612 </effect> 613</rule> 614 615<rule> 616 <id> 617 DataType_Size 618 </id> 619 <severity> 620 Low 621 </severity> 622 <kind> 623 Types 624 </kind> 625 <change> 626 Size of this type has been changed from @old_size to @new_size. 627 </change> 628 <effect> 629 The fields or parameters of such data type may be incorrectly initialized or accessed by old client applications. 630 </effect> 631</rule> 632 633<rule> 634 <id> 635 DataType_Type 636 </id> 637 <severity> 638 Medium 639 </severity> 640 <kind> 641 Types 642 </kind> 643 <change> 644 Type of this type has been changed from @old_value to @new_value. 645 </change> 646 <effect> 647 The fields or parameters of such data type may be incorrectly initialized or accessed by old client applications. 648 </effect> 649</rule> 650 651<rule> 652 <id> 653 DataType_Size_And_Stack 654 </id> 655 <severity> 656 High 657 </severity> 658 <kind> 659 Types 660 </kind> 661 <change> 662 Size of this type has been changed from @old_size to @new_size. 663 </change> 664 <effect> 665 Layout of parameter's stack of several functions has been changed and therefore parameters at higher positions in the stack may be incorrectly initialized by applications. 666 </effect> 667</rule> 668 669<rule> 670 <id> 671 Moved_Field 672 </id> 673 <severity> 674 Medium 675 </severity> 676 <kind> 677 Fields 678 </kind> 679 <change> 680 The relative position of field @target has been changed from @old_value to @new_value. 681 </change> 682 <effect> 683 Applications will access incorrect memory when attempting to access this field. 684 </effect> 685</rule> 686 687<rule> 688 <id> 689 Moved_Field_And_Size 690 </id> 691 <severity> 692 Medium 693 </severity> 694 <kind> 695 Fields 696 </kind> 697 <change> 698 The relative position of field @target has been changed from @old_value to @new_value. 699 </change> 700 <effect> 701 1) Applications will access incorrect memory when attempting to access this field. 702 2) Size of the inclusive type has been changed. 703 </effect> 704</rule> 705 706<rule> 707 <id> 708 Moved_Private_Field_And_Size 709 </id> 710 <severity> 711 Low 712 </severity> 713 <kind> 714 Fields 715 </kind> 716 <change> 717 The relative position of private field @target has been changed from @old_value to @new_value. 718 </change> 719 <effect> 720 Size of the inclusive type has been changed. 721 </effect> 722</rule> 723 724<rule> 725 <id> 726 Added_Field 727 </id> 728 <severity> 729 Low 730 </severity> 731 <kind> 732 Fields 733 </kind> 734 <change> 735 Field @target has been added to this type. 736 </change> 737 <effect> 738 This field will not be initialized by old clients. 739 NOTE: this field should be accessed only from the new library functions, otherwise it may result in crash or incorrect behavior of applications. 740 </effect> 741</rule> 742 743<rule> 744 <id> 745 Added_Field_And_Size 746 </id> 747 <severity> 748 Low 749 </severity> 750 <kind> 751 Fields 752 </kind> 753 <change> 754 Field @target has been added to this type. 755 </change> 756 <effect> 757 1) This field will not be initialized by old clients. 758 2) Size of the inclusive type has been changed. 759 NOTE: this field should be accessed only from the new library functions, otherwise it may result in crash or incorrect behavior of applications. 760 </effect> 761</rule> 762 763<rule> 764 <id> 765 Added_Field_And_Layout 766 </id> 767 <severity> 768 Medium 769 </severity> 770 <kind> 771 Fields 772 </kind> 773 <change> 774 Field @target has been added at the middle position of this structural type. 775 </change> 776 <effect> 777 Layout of structure fields has been changed and therefore fields at higher positions of the structure definition may be incorrectly accessed by applications. 778 </effect> 779</rule> 780 781<rule> 782 <id> 783 Added_Field_And_Layout_And_Size 784 </id> 785 <severity> 786 Medium 787 </severity> 788 <kind> 789 Fields 790 </kind> 791 <change> 792 Field @target has been added at the middle position of this structural type. 793 </change> 794 <effect> 795 1) Size of the inclusive type has been changed. 796 2) Layout of structure fields has been changed and therefore fields at higher positions of the structure definition may be incorrectly accessed by applications. 797 </effect> 798</rule> 799 800<rule> 801 <id> 802 Added_Private_Field_And_Size 803 </id> 804 <severity> 805 Low 806 </severity> 807 <kind> 808 Fields 809 </kind> 810 <change> 811 Field @target has been added to this type. 812 </change> 813 <effect> 814 Size of the inclusive type has been changed. 815 NOTE: this field should be accessed only from the new library functions, otherwise it may result in crash or incorrect behavior of applications. 816 </effect> 817</rule> 818 819<rule> 820 <id> 821 Added_Private_Field_And_Layout 822 </id> 823 <severity> 824 Medium 825 </severity> 826 <kind> 827 Fields 828 </kind> 829 <change> 830 Field @target has been added at the middle position of this structural type. 831 </change> 832 <effect> 833 Layout of structure fields has been changed and therefore fields at higher positions of the structure definition may be incorrectly accessed by applications. 834 </effect> 835</rule> 836 837<rule> 838 <id> 839 Added_Private_Field_And_Layout_And_Size 840 </id> 841 <severity> 842 Medium 843 </severity> 844 <kind> 845 Fields 846 </kind> 847 <change> 848 Field @target has been added at the middle position of this structural type. 849 </change> 850 <effect> 851 1) Size of the inclusive type has been changed. 852 2) Layout of structure fields has been changed and therefore fields at higher positions of the structure definition may be incorrectly accessed by applications. 853 </effect> 854</rule> 855 856<rule> 857 <id> 858 Added_Union_Field_And_Size 859 </id> 860 <severity> 861 Medium 862 </severity> 863 <kind> 864 Fields 865 </kind> 866 <change> 867 Field @target has been added to this type. 868 </change> 869 <effect> 870 Size of the union has been changed. 871 NOTE: this field should be accessed only from the new library functions, otherwise it may result in crash or incorrect behavior of applications. 872 </effect> 873</rule> 874 875<rule> 876 <id> 877 Added_Union_Field 878 </id> 879 <severity> 880 Low 881 </severity> 882 <kind> 883 Fields 884 </kind> 885 <change> 886 Field @target has been added to this type. 887 </change> 888 <effect> 889 NOTE: this field should be accessed only from the new library functions, otherwise it may result in crash or incorrect behavior of applications. 890 </effect> 891</rule> 892 893<rule> 894 <id> 895 Removed_Field 896 </id> 897 <severity> 898 Medium 899 </severity> 900 <kind> 901 Fields 902 </kind> 903 <change> 904 Field @target has been removed from this type. 905 </change> 906 <effect> 907 Applications will access incorrect memory when attempting to access this field. 908 </effect> 909</rule> 910 911<rule> 912 <id> 913 Removed_Field_And_Layout 914 </id> 915 <severity> 916 Medium 917 </severity> 918 <kind> 919 Fields 920 </kind> 921 <change> 922 Field @target has been removed from the middle position of this structural type. 923 </change> 924 <effect> 925 1) Applications will access incorrect memory when attempting to access this field. 926 2) Layout of structure fields has been changed and therefore fields at higher positions of the structure definition may be incorrectly accessed by applications. 927 </effect> 928</rule> 929 930<rule> 931 <id> 932 Removed_Field_And_Size 933 </id> 934 <severity> 935 Medium 936 </severity> 937 <kind> 938 Fields 939 </kind> 940 <change> 941 Field @target has been removed from this type. 942 </change> 943 <effect> 944 1) Applications will access incorrect memory when attempting to access this field. 945 2) Size of the inclusive type has been changed. 946 </effect> 947</rule> 948 949<rule> 950 <id> 951 Removed_Field_And_Layout_And_Size 952 </id> 953 <severity> 954 High 955 </severity> 956 <kind> 957 Fields 958 </kind> 959 <change> 960 Field @target has been removed from the middle position of this structural type. 961 </change> 962 <effect> 963 1) Previous accesses of applications to the removed field will be incorrect. 964 2) Layout of structure fields has been changed and therefore fields at higher positions of the structure definition may be incorrectly accessed by applications. 965 </effect> 966</rule> 967 968<rule> 969 <id> 970 Removed_Private_Field_And_Size 971 </id> 972 <severity> 973 Low 974 </severity> 975 <kind> 976 Fields 977 </kind> 978 <change> 979 Field @target has been removed from this type. 980 </change> 981 <effect> 982 Size of the inclusive type has been changed. 983 </effect> 984</rule> 985 986<rule> 987 <id> 988 Removed_Private_Field_And_Layout 989 </id> 990 <severity> 991 Medium 992 </severity> 993 <kind> 994 Fields 995 </kind> 996 <change> 997 Field @target has been removed from the middle position of this structural type. 998 </change> 999 <effect> 1000 Layout of structure fields has been changed and therefore fields at higher positions of the structure definition may be incorrectly accessed by applications. 1001 </effect> 1002</rule> 1003 1004<rule> 1005 <id> 1006 Removed_Private_Field_And_Layout_And_Size 1007 </id> 1008 <severity> 1009 Medium 1010 </severity> 1011 <kind> 1012 Fields 1013 </kind> 1014 <change> 1015 Field @target has been removed from the middle position of this structural type. 1016 </change> 1017 <effect> 1018 1) Layout of structure fields has been changed and therefore fields at higher positions of the structure definition may be incorrectly accessed by applications. 1019 2) Size of the inclusive type has been changed. 1020 </effect> 1021</rule> 1022 1023<rule> 1024 <id> 1025 Removed_Union_Field_And_Size 1026 </id> 1027 <severity> 1028 Medium 1029 </severity> 1030 <kind> 1031 Fields 1032 </kind> 1033 <change> 1034 Field @target has been removed from this union. 1035 </change> 1036 <effect> 1037 1) Applications may access incorrect memory when attempting to access this field. 1038 2) Size of the union has been changed. 1039 </effect> 1040</rule> 1041 1042<rule> 1043 <id> 1044 Removed_Union_Field 1045 </id> 1046 <severity> 1047 Low 1048 </severity> 1049 <kind> 1050 Fields 1051 </kind> 1052 <change> 1053 Field @target has been removed from this union. 1054 </change> 1055 <effect> 1056 Applications may access incorrect memory when attempting to access this field. 1057 </effect> 1058</rule> 1059 1060<rule> 1061 <id> 1062 Renamed_Field 1063 </id> 1064 <severity> 1065 Low 1066 </severity> 1067 <kind> 1068 Fields 1069 </kind> 1070 <change> 1071 Field @target has been renamed to @new_value. 1072 </change> 1073 <effect> 1074 Renaming of a field in data type may indicate a change in the semantic meaning of the field. 1075 </effect> 1076</rule> 1077 1078<rule> 1079 <id> 1080 Used_Reserved_Field 1081 </id> 1082 <severity> 1083 Low 1084 </severity> 1085 <kind> 1086 Fields 1087 </kind> 1088 <change> 1089 Reserved field @target has been replaced by @new_value. 1090 </change> 1091 <effect> 1092 This field will not be initialized by old clients. 1093 </effect> 1094</rule> 1095 1096<rule> 1097 <id> 1098 Enum_Member_Value 1099 </id> 1100 <severity> 1101 Medium 1102 </severity> 1103 <kind> 1104 Constants 1105 </kind> 1106 <change> 1107 Value of member @target has been changed from @old_value to @new_value. 1108 </change> 1109 <effect> 1110 Applications may execute a wrong branch of code in the library and therefore change the behavior. 1111 </effect> 1112</rule> 1113 1114<rule> 1115 <id> 1116 Enum_Member_Removed 1117 </id> 1118 <severity> 1119 Low 1120 </severity> 1121 <kind> 1122 Constants 1123 </kind> 1124 <change> 1125 The member @target has been removed. 1126 </change> 1127 <effect> 1128 This may result in crash or incorrect behavior of applications because the library may not handle removed member anymore. 1129 </effect> 1130</rule> 1131 1132<rule> 1133 <id> 1134 Enum_Last_Member_Value 1135 </id> 1136 <severity> 1137 Low 1138 </severity> 1139 <kind> 1140 Constants 1141 </kind> 1142 <change> 1143 Value of member @target has been changed from @old_value to @new_value. 1144 </change> 1145 <effect> 1146 Applications may execute a wrong branch of code in the library and therefore change the behavior. 1147 </effect> 1148</rule> 1149 1150<rule> 1151 <id> 1152 Enum_Private_Member_Value 1153 </id> 1154 <severity> 1155 Safe 1156 </severity> 1157 <kind> 1158 Constants 1159 </kind> 1160 <change> 1161 Value of private member @target has been changed from @old_value to @new_value. 1162 </change> 1163 <effect> 1164 No effect. 1165 </effect> 1166</rule> 1167 1168<rule> 1169 <id> 1170 Enum_Member_Name 1171 </id> 1172 <severity> 1173 Low 1174 </severity> 1175 <kind> 1176 Constants 1177 </kind> 1178 <change> 1179 Name of member with value @target has been changed from @old_value to @new_value. 1180 </change> 1181 <effect> 1182 Applications may execute a wrong branch of code in the library and therefore change the behavior. 1183 </effect> 1184</rule> 1185 1186<rule> 1187 <id> 1188 Field_Type 1189 </id> 1190 <severity> 1191 Low 1192 </severity> 1193 <kind> 1194 Fields 1195 </kind> 1196 <change> 1197 Type of field @target has been changed from @old_value to @new_value. 1198 </change> 1199 <effect> 1200 Replacement of the field data type may indicate a change in the semantic meaning of the field. 1201 </effect> 1202</rule> 1203 1204<rule> 1205 <id> 1206 Field_Type_And_Size 1207 </id> 1208 <severity> 1209 Medium 1210 </severity> 1211 <kind> 1212 Fields 1213 </kind> 1214 <change> 1215 Type of field @target has been changed from @old_value (@old_size) to @new_value (@new_size). 1216 </change> 1217 <effect> 1218 This field may be incorrectly initialized or accessed by applications. 1219 </effect> 1220</rule> 1221 1222<rule> 1223 <id> 1224 Field_Type_And_Size_And_Layout 1225 </id> 1226 <severity> 1227 Medium 1228 </severity> 1229 <kind> 1230 Fields 1231 </kind> 1232 <change> 1233 Type of field @target has been changed from @old_value (@old_size) to @new_value (@new_size). 1234 </change> 1235 <effect> 1236 Previous accesses of applications and library functions to this field and fields at higher positions of the structure definition may be broken. 1237 </effect> 1238</rule> 1239 1240<rule> 1241 <id> 1242 Field_Type_And_Size_And_Type_Size 1243 </id> 1244 <severity> 1245 Medium 1246 </severity> 1247 <kind> 1248 Fields 1249 </kind> 1250 <change> 1251 Type of field @target has been changed from @old_value (@old_size) to @new_value (@new_size). 1252 </change> 1253 <effect> 1254 1) This field may be incorrectly initialized or accessed by applications. 1255 2) Size of the inclusive type has been changed. 1256 </effect> 1257</rule> 1258 1259<rule> 1260 <id> 1261 Field_Type_And_Size_And_Layout_And_Type_Size 1262 </id> 1263 <severity> 1264 Medium 1265 </severity> 1266 <kind> 1267 Fields 1268 </kind> 1269 <change> 1270 Type of field @target has been changed from @old_value (@old_size) to @new_value (@new_size). 1271 </change> 1272 <effect> 1273 1) Size of the inclusive type has been changed. 1274 2) Previous accesses of applications and library functions to this field and fields at higher positions of the structure definition may be broken. 1275 </effect> 1276</rule> 1277 1278<rule> 1279 <id> 1280 Private_Field_Type_And_Size_And_Layout 1281 </id> 1282 <severity> 1283 Medium 1284 </severity> 1285 <kind> 1286 Fields 1287 </kind> 1288 <change> 1289 Type of field @target has been changed from @old_value (@old_size) to @new_value (@new_size). 1290 </change> 1291 <effect> 1292 Previous accesses of applications and library functions to the fields at higher positions of the structure definition may be broken. 1293 </effect> 1294</rule> 1295 1296<rule> 1297 <id> 1298 Private_Field_Type_And_Size 1299 </id> 1300 <severity> 1301 Safe 1302 </severity> 1303 <kind> 1304 Fields 1305 </kind> 1306 <change> 1307 Type of field @target has been changed from @old_value (@old_size) to @new_value (@new_size). 1308 </change> 1309 <effect> 1310 No effect. 1311 </effect> 1312</rule> 1313 1314<rule> 1315 <id> 1316 Private_Field_Type_And_Size_And_Type_Size 1317 </id> 1318 <severity> 1319 Low 1320 </severity> 1321 <kind> 1322 Fields 1323 </kind> 1324 <change> 1325 Type of field @target has been changed from @old_value (@old_size) to @new_value (@new_size). 1326 </change> 1327 <effect> 1328 Size of the inclusive type has been changed. 1329 </effect> 1330</rule> 1331 1332<rule> 1333 <id> 1334 Private_Field_Type_And_Size_And_Layout_And_Type_Size 1335 </id> 1336 <severity> 1337 Medium 1338 </severity> 1339 <kind> 1340 Fields 1341 </kind> 1342 <change> 1343 Type of field @target has been changed from @old_value (@old_size) to @new_value (@new_size). 1344 </change> 1345 <effect> 1346 1) Size of the inclusive type has been changed. 1347 2) Previous accesses of applications and library functions to the fields at higher positions of the structure definition may be broken. 1348 </effect> 1349</rule> 1350 1351<rule> 1352 <id> 1353 Field_BaseType_And_Size 1354 </id> 1355 <severity> 1356 Low 1357 </severity> 1358 <kind> 1359 Fields 1360 </kind> 1361 <change> 1362 Base type of field @target has been changed from @old_value (@old_size) to @new_value (@new_size). 1363 </change> 1364 <effect> 1365 Possible access of applications to incorrect memory through the pointer. 1366 </effect> 1367</rule> 1368 1369<rule> 1370 <id> 1371 Field_BaseType 1372 </id> 1373 <severity> 1374 Low 1375 </severity> 1376 <kind> 1377 Fields 1378 </kind> 1379 <change> 1380 Base type of field @target has been changed from @old_value to @new_value. 1381 </change> 1382 <effect> 1383 Replacement of field base type may indicate a change in the semantic meaning of the field. 1384 </effect> 1385</rule> 1386 1387<rule> 1388 <id> 1389 Field_PointerLevel_Increased 1390 </id> 1391 <severity> 1392 Medium 1393 </severity> 1394 <kind> 1395 Fields 1396 </kind> 1397 <change> 1398 The pointer level of field @target has been increased from @old_value to @new_value. 1399 </change> 1400 <effect> 1401 The library functions may try to access unallocated memory by the dereferencing of old field value and therefore cause a crash of applications. 1402 </effect> 1403</rule> 1404 1405<rule> 1406 <id> 1407 Field_PointerLevel_Decreased 1408 </id> 1409 <severity> 1410 Low 1411 </severity> 1412 <kind> 1413 Fields 1414 </kind> 1415 <change> 1416 The pointer level of field @target has been decreased from @old_value to @new_value. 1417 </change> 1418 <effect> 1419 The library functions will treat the value of this field as the lower-dimension array and will not read all elements. This may change the behavior of applications. 1420 </effect> 1421</rule> 1422 1423<rule> 1424 <id> 1425 Field_Size 1426 </id> 1427 <severity> 1428 Medium 1429 </severity> 1430 <kind> 1431 Fields 1432 </kind> 1433 <change> 1434 Size of field @target has been changed from @old_size to @new_size. 1435 </change> 1436 <effect> 1437 Previous accesses of applications and library functions to this field may be broken. 1438 </effect> 1439</rule> 1440 1441<rule> 1442 <id> 1443 Struct_Field_Size_Increased 1444 </id> 1445 <severity> 1446 Low 1447 </severity> 1448 <kind> 1449 Fields 1450 </kind> 1451 <change> 1452 Size of field @target has been changed from @old_size to @new_size. 1453 </change> 1454 <effect> 1455 Previous accesses of applications and library functions to this field may be broken. 1456 </effect> 1457</rule> 1458 1459<rule> 1460 <id> 1461 Field_Size_And_Layout 1462 </id> 1463 <severity> 1464 Medium 1465 </severity> 1466 <kind> 1467 Fields 1468 </kind> 1469 <change> 1470 Size of field @target has been changed from @old_size to @new_size. 1471 </change> 1472 <effect> 1473 Previous accesses of applications and library functions to this field and fields at higher positions of the structure definition may be broken. 1474 </effect> 1475</rule> 1476 1477<rule> 1478 <id> 1479 Field_Size_And_Type_Size 1480 </id> 1481 <severity> 1482 Medium 1483 </severity> 1484 <kind> 1485 Fields 1486 </kind> 1487 <change> 1488 Size of field @target has been changed from @old_size to @new_size. 1489 </change> 1490 <effect> 1491 1) Size of the inclusive type has been changed. 1492 2) Previous accesses of applications and library functions to this field may be broken. 1493 </effect> 1494</rule> 1495 1496<rule> 1497 <id> 1498 Field_Size_And_Layout_And_Type_Size 1499 </id> 1500 <severity> 1501 Medium 1502 </severity> 1503 <kind> 1504 Fields 1505 </kind> 1506 <change> 1507 Size of field @target has been changed from @old_size to @new_size. 1508 </change> 1509 <effect> 1510 1) Size of the inclusive type has been changed. 1511 2) Previous accesses of applications and library functions to this field and fields at higher positions of the structure definition may be broken. 1512 </effect> 1513</rule> 1514 1515<rule> 1516 <id> 1517 Private_Field_Size_And_Layout 1518 </id> 1519 <severity> 1520 Medium 1521 </severity> 1522 <kind> 1523 Fields 1524 </kind> 1525 <change> 1526 Size of field @target has been changed from @old_size to @new_size. 1527 </change> 1528 <effect> 1529 Previous accesses of applications and library functions to the fields at higher positions of the structure definition may be broken. 1530 </effect> 1531</rule> 1532 1533<rule> 1534 <id> 1535 Private_Field_Size 1536 </id> 1537 <severity> 1538 Safe 1539 </severity> 1540 <kind> 1541 Fields 1542 </kind> 1543 <change> 1544 Size of field @target has been changed from @old_size to @new_size. 1545 </change> 1546 <effect> 1547 No effect. 1548 </effect> 1549</rule> 1550 1551<rule> 1552 <id> 1553 Private_Field_Size_And_Type_Size 1554 </id> 1555 <severity> 1556 Low 1557 </severity> 1558 <kind> 1559 Fields 1560 </kind> 1561 <change> 1562 Size of field @target has been changed from @old_size to @new_size. 1563 </change> 1564 <effect> 1565 Size of the inclusive type has been changed. 1566 </effect> 1567</rule> 1568 1569<rule> 1570 <id> 1571 Private_Field_Size_And_Layout_And_Type_Size 1572 </id> 1573 <severity> 1574 Medium 1575 </severity> 1576 <kind> 1577 Fields 1578 </kind> 1579 <change> 1580 Size of field @target has been changed from @old_size to @new_size. 1581 </change> 1582 <effect> 1583 1) Size of the inclusive type has been changed. 1584 2) Previous accesses of applications and library functions to the fields at higher positions of the structure definition may be broken. 1585 </effect> 1586</rule> 1587 1588<rule> 1589 <id> 1590 Typedef_BaseType 1591 </id> 1592 <severity> 1593 Low 1594 </severity> 1595 <kind> 1596 Types 1597 </kind> 1598 <change> 1599 Base type has been changed from @old_value to @new_value. 1600 </change> 1601 <effect> 1602 Replacement of the base data type may indicate a change in its semantic meaning. 1603 </effect> 1604</rule> 1605 1606<rule> 1607 <id> 1608 Typedef_BaseType_Format 1609 </id> 1610 <severity> 1611 Medium 1612 </severity> 1613 <kind> 1614 Types 1615 </kind> 1616 <change> 1617 Base type has been changed from @old_value to @new_value of different format. 1618 </change> 1619 <effect> 1620 The fields or parameters of such data type may be incorrectly initialized or accessed by old client applications. 1621 </effect> 1622</rule> 1623 1624<rule> 1625 <id> 1626 Added_Symbol 1627 </id> 1628 <severity> 1629 Safe 1630 </severity> 1631 <kind> 1632 Symbols 1633 </kind> 1634</rule> 1635 1636<rule> 1637 <id> 1638 Removed_Symbol 1639 </id> 1640 <severity> 1641 High 1642 </severity> 1643 <kind> 1644 Symbols 1645 </kind> 1646</rule> 1647 1648<rule> 1649 <id> 1650 Method_Became_Static 1651 </id> 1652 <severity> 1653 High 1654 </severity> 1655 <kind> 1656 Symbols 1657 </kind> 1658 <change> 1659 Method became static. 1660 </change> 1661 <effect> 1662 Layout of parameter's stack has been changed and therefore parameters at higher positions in the stack may be incorrectly initialized by applications. 1663 </effect> 1664</rule> 1665 1666<rule> 1667 <id> 1668 Method_Became_Non_Static 1669 </id> 1670 <severity> 1671 High 1672 </severity> 1673 <kind> 1674 Symbols 1675 </kind> 1676 <change> 1677 Method became non-static. 1678 </change> 1679 <effect> 1680 Layout of parameter's stack has been changed and therefore parameters at higher positions in the stack may be incorrectly initialized by applications. 1681 </effect> 1682</rule> 1683 1684<rule> 1685 <id> 1686 Parameter_Default_Value_Changed 1687 </id> 1688 <severity> 1689 Low 1690 </severity> 1691 <kind> 1692 Parameters 1693 </kind> 1694 <change> 1695 The default argument of @param_pos parameter @target has been changed from @old_value to @new_value. 1696 </change> 1697 <effect> 1698 Applications will pass an old default (compile-time) argument that may not be properly handled anymore. This may result in crash or incorrect behavior of applications. 1699 </effect> 1700</rule> 1701 1702<rule> 1703 <id> 1704 Parameter_Default_Value_Removed 1705 </id> 1706 <severity> 1707 Low 1708 </severity> 1709 <kind> 1710 Parameters 1711 </kind> 1712 <change> 1713 The default argument @old_value of @param_pos parameter @target has been removed. 1714 </change> 1715 <effect> 1716 Applications will pass an old default argument (that is not default any more) that may not be properly handled anymore. This may result in crash or incorrect behavior of applications. 1717 </effect> 1718</rule> 1719 1720<rule> 1721 <id> 1722 Parameter_Default_Value_Added 1723 </id> 1724 <severity> 1725 Safe 1726 </severity> 1727 <kind> 1728 Parameters 1729 </kind> 1730 <change> 1731 The default argument @new_value of @param_pos parameter @target has been added. 1732 </change> 1733 <effect> 1734 No effect. 1735 </effect> 1736</rule> 1737 1738<rule> 1739 <id> 1740 Parameter_Type_And_Register 1741 </id> 1742 <severity> 1743 Medium 1744 </severity> 1745 <kind> 1746 Symbols 1747 </kind> 1748 <change> 1749 Type of @param_pos parameter @target has been changed from @old_value (@old_size) to @new_value (@new_size). 1750 </change> 1751 <effect> 1752 The parameter became passed in different register. Applications will read the wrong memory block instead of the parameter value. Also, distribution of other parameters on the available registers and stack may be changed. 1753 </effect> 1754</rule> 1755 1756<rule> 1757 <id> 1758 Parameter_Type_And_Stack 1759 </id> 1760 <severity> 1761 High 1762 </severity> 1763 <kind> 1764 Parameters 1765 </kind> 1766 <change> 1767 Type of @param_pos parameter @target has been changed from @old_value (@old_size) to @new_value (@new_size). 1768 </change> 1769 <effect> 1770 Layout of parameter's stack has been changed and therefore parameters at higher positions in the stack may be incorrectly initialized by applications. 1771 </effect> 1772</rule> 1773 1774<rule> 1775 <id> 1776 Parameter_Type_And_Size 1777 </id> 1778 <severity> 1779 High 1780 </severity> 1781 <kind> 1782 Parameters 1783 </kind> 1784 <change> 1785 Type of @param_pos parameter @target has been changed from @old_value (@old_size) to @new_value (@new_size). 1786 </change> 1787 <effect> 1788 Layout of parameter's stack has been changed and therefore parameters at higher positions in the stack may be incorrectly initialized by applications. 1789 </effect> 1790</rule> 1791 1792<rule> 1793 <id> 1794 Parameter_Type_From_Stack_To_Register 1795 </id> 1796 <severity> 1797 High 1798 </severity> 1799 <kind> 1800 Parameters 1801 </kind> 1802 <change> 1803 Type of @param_pos parameter @target has been changed from @old_value (@old_size) to @new_value (@new_size). 1804 </change> 1805 <effect> 1806 The parameter became passed in the register instead of the stack. This may result in crash or incorrect behavior of applications. 1807 </effect> 1808</rule> 1809 1810<rule> 1811 <id> 1812 Parameter_Type_From_Register_To_Stack 1813 </id> 1814 <severity> 1815 High 1816 </severity> 1817 <kind> 1818 Parameters 1819 </kind> 1820 <change> 1821 Type of @param_pos parameter @target has been changed from @old_value (@old_size) to @new_value (@new_size). 1822 </change> 1823 <effect> 1824 The parameter became passed through the stack instead of the register. This may result in crash or incorrect behavior of applications. 1825 </effect> 1826</rule> 1827 1828<rule> 1829 <id> 1830 Parameter_Type 1831 </id> 1832 <severity> 1833 Low 1834 </severity> 1835 <kind> 1836 Parameters 1837 </kind> 1838 <change> 1839 Type of @param_pos parameter @target has been changed from @old_value to @new_value. 1840 </change> 1841 <effect> 1842 Replacement of parameter data type may indicate a change in its semantic meaning. 1843 </effect> 1844</rule> 1845 1846<rule> 1847 <id> 1848 Parameter_Became_Non_Const 1849 </id> 1850 <severity> 1851 Medium 1852 </severity> 1853 <kind> 1854 Parameters 1855 </kind> 1856 <change> 1857 Type of @param_pos parameter @target has been changed from @old_value to @new_value (became non-const). 1858 </change> 1859 <effect> 1860 This function may change parameter @target, but it will be treated as const by old client applications. This may result in crash or incorrect behavior of applications. 1861 </effect> 1862</rule> 1863 1864<rule> 1865 <id> 1866 Parameter_Removed_Const 1867 </id> 1868 <severity> 1869 Medium 1870 </severity> 1871 <kind> 1872 Parameters 1873 </kind> 1874 <change> 1875 Type of @param_pos parameter @target has been changed from @old_value to @new_value (removed const qualifier). 1876 </change> 1877 <effect> 1878 This function may change parameter @target, but it will be treated as const by old client applications. This may result in crash or incorrect behavior of applications. 1879 </effect> 1880</rule> 1881 1882<rule> 1883 <id> 1884 Parameter_Became_Restrict 1885 </id> 1886 <severity> 1887 Medium 1888 </severity> 1889 <kind> 1890 Parameters 1891 </kind> 1892 <change> 1893 Parameter @target became restrict. 1894 </change> 1895 <effect> 1896 Added a new restriction on the parameter: if the memory addressed by the restrict-qualified pointer is modified, no other pointer will access that same memory. The compiler may choose to optimize new library code involving restrict-qualified pointers in a way that might result in incorrect behavior of old applications, that don't meet this restriction. 1897 </effect> 1898</rule> 1899 1900<rule> 1901 <id> 1902 Parameter_Became_Non_Restrict 1903 </id> 1904 <severity> 1905 Safe 1906 </severity> 1907 <kind> 1908 Parameters 1909 </kind> 1910 <change> 1911 Parameter @target became non-restrict. 1912 </change> 1913 <effect> 1914 No effect. 1915 </effect> 1916</rule> 1917 1918<rule> 1919 <id> 1920 Parameter_Became_Register 1921 </id> 1922 <severity> 1923 Medium 1924 </severity> 1925 <kind> 1926 Parameters 1927 </kind> 1928 <change> 1929 Added register modifier to the parameter @target. 1930 </change> 1931 <effect> 1932 The parameter may be passed in a register instead of the calling stack. 1933 </effect> 1934</rule> 1935 1936<rule> 1937 <id> 1938 Parameter_Became_Non_Register 1939 </id> 1940 <severity> 1941 Medium 1942 </severity> 1943 <kind> 1944 Parameters 1945 </kind> 1946 <change> 1947 Removed register modifier from the parameter @target. 1948 </change> 1949 <effect> 1950 The parameter will be passed on the calling stack instead of a register. 1951 </effect> 1952</rule> 1953 1954<rule> 1955 <id> 1956 Parameter_To_Register 1957 </id> 1958 <severity> 1959 Medium 1960 </severity> 1961 <kind> 1962 Parameters 1963 </kind> 1964 <change> 1965 The parameter @target became passed in @new_value register instead of stack. 1966 </change> 1967 <effect> 1968 Violation of the calling convention. This may result in crash or incorrect behavior of applications. 1969 </effect> 1970</rule> 1971 1972<rule> 1973 <id> 1974 Parameter_From_Register 1975 </id> 1976 <severity> 1977 Medium 1978 </severity> 1979 <kind> 1980 Parameters 1981 </kind> 1982 <change> 1983 The parameter @target became passed on stack instead of @old_value register. 1984 </change> 1985 <effect> 1986 Violation of the calling convention. This may result in crash or incorrect behavior of applications. 1987 </effect> 1988</rule> 1989 1990<rule> 1991 <id> 1992 Parameter_Changed_Register 1993 </id> 1994 <severity> 1995 High 1996 </severity> 1997 <kind> 1998 Symbols 1999 </kind> 2000 <change> 2001 The parameter @target became passed in @new_value register instead of @old_value. 2002 </change> 2003 <effect> 2004 Applications will read the wrong memory block instead of the parameter value. 2005 </effect> 2006</rule> 2007 2008<rule> 2009 <id> 2010 Parameter_Changed_Offset 2011 </id> 2012 <severity> 2013 High 2014 </severity> 2015 <kind> 2016 Symbols 2017 </kind> 2018 <change> 2019 The parameter @target became passed at the different offset on the stack (@new_value instead of @old_value). 2020 </change> 2021 <effect> 2022 Violation of the calling convention. This may result in crash or incorrect behavior of applications. 2023 </effect> 2024</rule> 2025 2026<rule> 2027 <id> 2028 Return_Type_Became_Const 2029 </id> 2030 <severity> 2031 Medium 2032 </severity> 2033 <kind> 2034 Symbols 2035 </kind> 2036 <change> 2037 Type of return value became const (has been changed from @old_value to @new_value). 2038 </change> 2039 <effect> 2040 The return value will be treated as non-const by old client applications. This may result in crash or incorrect behavior of applications. 2041 </effect> 2042</rule> 2043 2044<rule> 2045 <id> 2046 Return_Type_Added_Const 2047 </id> 2048 <severity> 2049 Medium 2050 </severity> 2051 <kind> 2052 Symbols 2053 </kind> 2054 <change> 2055 Added **const** qualifier to return value (has been changed from @old_value to @new_value). 2056 </change> 2057 <effect> 2058 The return value will be treated as non-const by old client applications. This may result in crash or incorrect behavior of applications. 2059 </effect> 2060</rule> 2061 2062<rule> 2063 <id> 2064 Parameter_BaseType_And_Size 2065 </id> 2066 <severity> 2067 Medium 2068 </severity> 2069 <kind> 2070 Parameters 2071 </kind> 2072 <change> 2073 Base type of @param_pos parameter @target has been changed from @old_value (@old_size) to @new_value (@new_size). 2074 </change> 2075 <effect> 2076 This parameter may be incorrectly initialized by applications. 2077 </effect> 2078</rule> 2079 2080<rule> 2081 <id> 2082 Parameter_BaseType 2083 </id> 2084 <severity> 2085 Low 2086 </severity> 2087 <kind> 2088 Parameters 2089 </kind> 2090 <change> 2091 Base type of @param_pos parameter @target has been changed from @old_value to @new_value. 2092 </change> 2093 <effect> 2094 Replacement of parameter base type may indicate a change in its semantic meaning. 2095 </effect> 2096</rule> 2097 2098<rule> 2099 <id> 2100 Parameter_PointerLevel_Increased 2101 </id> 2102 <severity> 2103 High 2104 </severity> 2105 <kind> 2106 Parameters 2107 </kind> 2108 <change> 2109 The pointer level of @param_pos parameter @target has been increased from @old_value to @new_value. 2110 </change> 2111 <effect> 2112 The library function may try to access unallocated memory by the dereferencing of old parameter value and therefore cause a crash of applications. 2113 </effect> 2114</rule> 2115 2116<rule> 2117 <id> 2118 Parameter_PointerLevel_Decreased 2119 </id> 2120 <severity> 2121 Medium 2122 </severity> 2123 <kind> 2124 Parameters 2125 </kind> 2126 <change> 2127 The pointer level of @param_pos parameter @target has been decreased from @old_value to @new_value. 2128 </change> 2129 <effect> 2130 The library function will treat the parameter as the lower-dimension array and will not read all elements. This may change the behavior of applications. 2131 NOTE: if this is out-parameter then this change may cause a crash of applications. 2132 </effect> 2133</rule> 2134 2135<rule> 2136 <id> 2137 Return_Type_And_Size 2138 </id> 2139 <severity> 2140 Medium 2141 </severity> 2142 <kind> 2143 Symbols 2144 </kind> 2145 <change> 2146 Type of return value has been changed from @old_value (@old_size) to @new_value (@new_size). 2147 </change> 2148 <effect> 2149 Applications will obtain a different return value and execution may change. 2150 </effect> 2151</rule> 2152 2153<rule> 2154 <id> 2155 Global_Data_Type_And_Size 2156 </id> 2157 <severity> 2158 Medium 2159 </severity> 2160 <kind> 2161 Symbols 2162 </kind> 2163 <change> 2164 Type of this global data has been changed from @old_value (@old_size) to @new_value (@new_size). 2165 </change> 2166 <effect> 2167 Applications will obtain a different value and execution may change. 2168 </effect> 2169</rule> 2170 2171<rule> 2172 <id> 2173 Return_Type 2174 </id> 2175 <severity> 2176 Low 2177 </severity> 2178 <kind> 2179 Symbols 2180 </kind> 2181 <change> 2182 Type of return value has been changed from @old_value to @new_value. 2183 </change> 2184 <effect> 2185 Replacement of return type may indicate a change in its semantic meaning. 2186 </effect> 2187</rule> 2188 2189<rule> 2190 <id> 2191 Global_Data_Type 2192 </id> 2193 <severity> 2194 Low 2195 </severity> 2196 <kind> 2197 Symbols 2198 </kind> 2199 <change> 2200 Type of this global data has been changed from @old_value to @new_value. 2201 </change> 2202 <effect> 2203 Replacement of data type may indicate a change in semantic meaning. 2204 </effect> 2205</rule> 2206 2207<rule> 2208 <id> 2209 Global_Data_Type_Format 2210 </id> 2211 <severity> 2212 Medium 2213 </severity> 2214 <kind> 2215 Symbols 2216 </kind> 2217 <change> 2218 Type of this global data has been changed from @old_value to @new_value of different format. 2219 </change> 2220 <effect> 2221 This global data may be incorrectly accessed by applications. 2222 </effect> 2223</rule> 2224 2225<rule> 2226 <id> 2227 Global_Data_Size 2228 </id> 2229 <severity> 2230 Medium 2231 </severity> 2232 <kind> 2233 Symbols 2234 </kind> 2235 <change> 2236 Size of this global data has been changed from @old_size to @new_size. 2237 </change> 2238 <effect> 2239 Applications will obtain a different value and execution may change. 2240 </effect> 2241</rule> 2242 2243<rule> 2244 <id> 2245 Return_Type_Became_Void 2246 </id> 2247 <severity> 2248 Medium 2249 </severity> 2250 <kind> 2251 Symbols 2252 </kind> 2253 <change> 2254 Type of return value has been changed from @old_value (@old_size) to void. 2255 </change> 2256 <effect> 2257 Applications will not obtain a return value and execution may change. 2258 </effect> 2259</rule> 2260 2261<rule> 2262 <id> 2263 Return_Type_Became_Void_And_Stack_Layout 2264 </id> 2265 <severity> 2266 High 2267 </severity> 2268 <kind> 2269 Symbols 2270 </kind> 2271 <change> 2272 Type of return value has been changed from @old_value (@old_size) to void. 2273 </change> 2274 <effect> 2275 1) Applications will read the wrong memory block instead of the return value. 2276 2) Layout of parameter's stack has been shifted by @word_size bytes because the hidden first argument, that is used to pass the return value, has been removed. All the parameters will be incorrectly initialized by applications. 2277 </effect> 2278</rule> 2279 2280<rule> 2281 <id> 2282 Return_Type_Became_Void_And_Register 2283 </id> 2284 <severity> 2285 High 2286 </severity> 2287 <kind> 2288 Symbols 2289 </kind> 2290 <change> 2291 Type of return value has been changed from @old_value (@old_size) to void. 2292 </change> 2293 <effect> 2294 1) Applications will read the wrong memory block instead of the return value. 2295 2) Distribution of parameters on the available registers and stack has been changed because the hidden first argument, that is used to pass the return value, has been removed. All the parameters will be incorrectly initialized by applications. 2296 </effect> 2297</rule> 2298 2299<rule> 2300 <id> 2301 Return_Type_From_Void_And_Stack_Layout 2302 </id> 2303 <severity> 2304 High 2305 </severity> 2306 <kind> 2307 Symbols 2308 </kind> 2309 <change> 2310 Type of return value has been changed from void to @new_value (@new_size). 2311 </change> 2312 <effect> 2313 Layout of parameter's stack has been shifted by @word_size bytes because the return value became passed in memory as the hidden first argument, that was used to pass the return value. All the parameters will be incorrectly initialized by applications. 2314 </effect> 2315</rule> 2316 2317<rule> 2318 <id> 2319 Return_Type_From_Void_And_Register 2320 </id> 2321 <severity> 2322 High 2323 </severity> 2324 <kind> 2325 Symbols 2326 </kind> 2327 <change> 2328 Type of return value has been changed from void to @new_value (@new_size). 2329 </change> 2330 <effect> 2331 Distribution of parameters on the available registers and stack has been changed because the return value became passed in memory as the hidden first argument, that is used to pass the return value. All the parameters will be incorrectly initialized by applications. 2332 </effect> 2333</rule> 2334 2335<rule> 2336 <id> 2337 Return_Type_From_Void 2338 </id> 2339 <severity> 2340 Low 2341 </severity> 2342 <kind> 2343 Symbols 2344 </kind> 2345 <change> 2346 Type of return value has been changed from void to @new_value (@new_size). 2347 </change> 2348 <effect> 2349 Replacement of return type may indicate a change in its semantic meaning. 2350 </effect> 2351</rule> 2352 2353<rule> 2354 <id> 2355 Return_Type_From_Register_To_Stack 2356 </id> 2357 <severity> 2358 High 2359 </severity> 2360 <kind> 2361 Symbols 2362 </kind> 2363 <change> 2364 Type of return value has been changed from @old_value (@old_size) to @new_value (@new_size). 2365 </change> 2366 <effect> 2367 1) The return value became passed in memory as the hidden first argument (address of the space on the stack provided by the caller) instead of the register and therefore the layout of parameter's stack has been shifted by @word_size bytes. All the parameters will be incorrectly initialized by applications. 2368 2) Applications will read the wrong memory block instead of the return value. 2369 </effect> 2370</rule> 2371 2372<rule> 2373 <id> 2374 Return_Type_And_Register_Became_Hidden_Parameter 2375 </id> 2376 <severity> 2377 High 2378 </severity> 2379 <kind> 2380 Symbols 2381 </kind> 2382 <change> 2383 Type of return value has been changed from @old_value (@old_size) to @new_value (@new_size). 2384 </change> 2385 <effect> 2386 1) The return value became passed in different register as the hidden first argument (address of the space on the stack provided by the caller) and therefore distribution of parameters on the available registers and stack will be changed. All the parameters will be incorrectly initialized by applications. 2387 2) Applications will read the wrong memory block instead of the return value. 2388 </effect> 2389</rule> 2390 2391<rule> 2392 <id> 2393 Return_Type_From_Stack_To_Register 2394 </id> 2395 <severity> 2396 High 2397 </severity> 2398 <kind> 2399 Symbols 2400 </kind> 2401 <change> 2402 Type of return value has been changed from @old_value (@old_size) to @new_value (@new_size). 2403 </change> 2404 <effect> 2405 1) The return value became passed in register instead of the hidden first argument (address of the space on the stack provided by the caller) and therefore the layout of parameter's stack has been shifted by @word_size bytes. All the parameters will be incorrectly initialized by applications. 2406 2) Applications will read the wrong memory block instead of the return value. 2407 </effect> 2408</rule> 2409 2410<rule> 2411 <id> 2412 Return_Type_And_Register_Was_Hidden_Parameter 2413 </id> 2414 <severity> 2415 High 2416 </severity> 2417 <kind> 2418 Symbols 2419 </kind> 2420 <change> 2421 Type of return value has been changed from @old_value (@old_size) to @new_value (@new_size). 2422 </change> 2423 <effect> 2424 1) The return value became passed in register instead of the hidden first argument, that is passed in different register, and therefore distribution of parameters on the available registers and stack will be changed. All the parameters will be incorrectly initialized by applications. 2425 2) Applications will read the wrong memory block instead of the return value. 2426 </effect> 2427</rule> 2428 2429<rule> 2430 <id> 2431 Global_Data_Became_Non_Const 2432 </id> 2433 <severity> 2434 Medium 2435 </severity> 2436 <kind> 2437 Symbols 2438 </kind> 2439 <change> 2440 This global data became non-const. 2441 </change> 2442 <effect> 2443 This data will be copied to applications at compile time. Any attempts to change this global data by library functions may result in crash of applications. 2444 </effect> 2445</rule> 2446 2447<rule> 2448 <id> 2449 Global_Data_Removed_Const 2450 </id> 2451 <severity> 2452 Low 2453 </severity> 2454 <kind> 2455 Symbols 2456 </kind> 2457 <change> 2458 Removed **const** qualifier from the type of this global data. 2459 </change> 2460 <effect> 2461 This data will be treated as const by old client applications. Any attempts to change this global data by library functions may result in undefined behavior. 2462 </effect> 2463</rule> 2464 2465<rule> 2466 <id> 2467 Global_Data_Became_Const 2468 </id> 2469 <severity> 2470 Medium 2471 </severity> 2472 <kind> 2473 Symbols 2474 </kind> 2475 <change> 2476 This global data became const. 2477 </change> 2478 <effect> 2479 Any attempts of old applications to change this global data may result in crash. 2480 </effect> 2481</rule> 2482 2483<rule> 2484 <id> 2485 Global_Data_Added_Const 2486 </id> 2487 <severity> 2488 Medium 2489 </severity> 2490 <kind> 2491 Symbols 2492 </kind> 2493 <change> 2494 Added **const** qualifier to the type of this global data. 2495 </change> 2496 <effect> 2497 Any attempts of old applications to change this global data may result in crash. 2498 </effect> 2499</rule> 2500 2501<rule> 2502 <id> 2503 Return_BaseType_And_Size 2504 </id> 2505 <severity> 2506 Medium 2507 </severity> 2508 <kind> 2509 Symbols 2510 </kind> 2511 <change> 2512 Base type of return value has been changed from @old_value (@old_size) to @new_value (@new_size). 2513 </change> 2514 <effect> 2515 Applications will obtain a different return value and execution may change. 2516 </effect> 2517</rule> 2518 2519<rule> 2520 <id> 2521 Return_BaseType 2522 </id> 2523 <severity> 2524 Low 2525 </severity> 2526 <kind> 2527 Symbols 2528 </kind> 2529 <change> 2530 Base type of return value has been changed from @old_value to @new_value. 2531 </change> 2532 <effect> 2533 Replacement of return base type may indicate a change in its semantic meaning. 2534 </effect> 2535</rule> 2536 2537<rule> 2538 <id> 2539 Return_PointerLevel_Increased 2540 </id> 2541 <severity> 2542 Low 2543 </severity> 2544 <kind> 2545 Symbols 2546 </kind> 2547 <change> 2548 The pointer level of return value has been increased from @old_value to @new_value. 2549 </change> 2550 <effect> 2551 Applications will treat the return value as the lower-dimension array and will not read all elements. This may change the behavior of applications. 2552 </effect> 2553</rule> 2554 2555<rule> 2556 <id> 2557 Return_PointerLevel_Decreased 2558 </id> 2559 <severity> 2560 Medium 2561 </severity> 2562 <kind> 2563 Symbols 2564 </kind> 2565 <change> 2566 The pointer level of return value has been decreased from @old_value to @new_value. 2567 </change> 2568 <effect> 2569 Applications may try to access unallocated memory by the dereferencing of new return value and therefore cause a crash. 2570 </effect> 2571</rule> 2572 2573<rule> 2574 <id> 2575 Removed_Parameter 2576 </id> 2577 <severity> 2578 Medium 2579 </severity> 2580 <kind> 2581 Parameters 2582 </kind> 2583 <change> 2584 @param_pos parameter @target has been removed from the calling stack. 2585 </change> 2586 <effect> 2587 This parameter will be ignored by the function. 2588 </effect> 2589</rule> 2590 2591<rule> 2592 <id> 2593 Removed_Unnamed_Parameter 2594 </id> 2595 <severity> 2596 Medium 2597 </severity> 2598 <kind> 2599 Parameters 2600 </kind> 2601 <change> 2602 Parameter @target of type @param_type has been removed from the calling stack. 2603 </change> 2604 <effect> 2605 This parameter will be ignored by the function. 2606 </effect> 2607</rule> 2608 2609<rule> 2610 <id> 2611 Added_Parameter 2612 </id> 2613 <severity> 2614 Medium 2615 </severity> 2616 <kind> 2617 Parameters 2618 </kind> 2619 <change> 2620 Parameter @target of type @param_type has been added to the calling stack. 2621 </change> 2622 <effect> 2623 This parameter will not be initialized by old clients. 2624 </effect> 2625</rule> 2626 2627<rule> 2628 <id> 2629 Added_Unnamed_Parameter 2630 </id> 2631 <severity> 2632 Medium 2633 </severity> 2634 <kind> 2635 Parameters 2636 </kind> 2637 <change> 2638 @param_pos parameter @target has been added to the calling stack. 2639 </change> 2640 <effect> 2641 This parameter will not be initialized by old clients. 2642 </effect> 2643</rule> 2644 2645<rule> 2646 <id> 2647 Removed_Middle_Parameter 2648 </id> 2649 <severity> 2650 High 2651 </severity> 2652 <kind> 2653 Parameters 2654 </kind> 2655 <change> 2656 @param_pos middle parameter @target has been removed from the calling stack. 2657 </change> 2658 <effect> 2659 Layout of parameter's stack has been changed and therefore parameters at higher positions in the stack may be incorrectly initialized by applications. 2660 </effect> 2661</rule> 2662 2663<rule> 2664 <id> 2665 Removed_Middle_Unnamed_Parameter 2666 </id> 2667 <severity> 2668 High 2669 </severity> 2670 <kind> 2671 Parameters 2672 </kind> 2673 <change> 2674 Middle parameter @target of type @param_type has been removed from the calling stack. 2675 </change> 2676 <effect> 2677 Layout of parameter's stack has been changed and therefore parameters at higher positions in the stack may be incorrectly initialized by applications. 2678 </effect> 2679</rule> 2680 2681<rule> 2682 <id> 2683 Added_Middle_Parameter 2684 </id> 2685 <severity> 2686 High 2687 </severity> 2688 <kind> 2689 Parameters 2690 </kind> 2691 <change> 2692 Parameter @target of type @param_type has been added to the calling stack at the middle position. 2693 </change> 2694 <effect> 2695 Layout of parameter's stack has been changed and therefore parameters at higher positions in the stack may be incorrectly initialized by applications. 2696 </effect> 2697</rule> 2698 2699<rule> 2700 <id> 2701 Added_Middle_Unnamed_Parameter 2702 </id> 2703 <severity> 2704 High 2705 </severity> 2706 <kind> 2707 Parameters 2708 </kind> 2709 <change> 2710 @param_pos parameter @target has been added to the calling stack at the middle position. 2711 </change> 2712 <effect> 2713 Layout of parameter's stack has been changed and therefore parameters at higher positions in the stack may be incorrectly initialized by applications. 2714 </effect> 2715</rule> 2716 2717<rule> 2718 <id> 2719 Renamed_Parameter 2720 </id> 2721 <severity> 2722 Low 2723 </severity> 2724 <kind> 2725 Parameters 2726 </kind> 2727 <change> 2728 @param_pos parameter @target has been renamed to @new_value. 2729 </change> 2730 <effect> 2731 Renaming of a parameter may indicate a change in its semantic meaning. 2732 </effect> 2733</rule> 2734 2735<rule> 2736 <id> 2737 Symbol_Became_Static 2738 </id> 2739 <severity> 2740 High 2741 </severity> 2742 <kind> 2743 Symbols 2744 </kind> 2745 <change> 2746 Method became static. 2747 </change> 2748 <effect> 2749 The name of the appropriate symbol for this function on binary level has been changed from @old_value to @new_value. This may cause "undefined reference" linker error in old client applications. 2750 </effect> 2751</rule> 2752 2753<rule> 2754 <id> 2755 Symbol_Became_Non_Static 2756 </id> 2757 <severity> 2758 High 2759 </severity> 2760 <kind> 2761 Symbols 2762 </kind> 2763 <change> 2764 Method became non-static. 2765 </change> 2766 <effect> 2767 The name of the appropriate symbol for this function on binary level has been changed from @old_value to @new_value. This may cause "undefined reference" linker error in old client applications. 2768 </effect> 2769</rule> 2770 2771<rule> 2772 <id> 2773 Symbol_Became_Virtual 2774 </id> 2775 <severity> 2776 High 2777 </severity> 2778 <kind> 2779 Symbols 2780 </kind> 2781 <change> 2782 Method became virtual. 2783 </change> 2784 <effect> 2785 The name of the appropriate symbol for this function on binary level has been changed from @old_value to @new_value. This may cause "undefined reference" linker error in old client applications. 2786 </effect> 2787</rule> 2788 2789<rule> 2790 <id> 2791 Symbol_Became_Non_Virtual 2792 </id> 2793 <severity> 2794 High 2795 </severity> 2796 <kind> 2797 Symbols 2798 </kind> 2799 <change> 2800 Method became non-virtual. 2801 </change> 2802 <effect> 2803 The name of the appropriate symbol for this function on binary level has been changed from @old_value to @new_value. This may cause "undefined reference" linker error in old client applications. 2804 </effect> 2805</rule> 2806 2807<rule> 2808 <id> 2809 Symbol_Changed_Return 2810 </id> 2811 <severity> 2812 High 2813 </severity> 2814 <kind> 2815 Symbols 2816 </kind> 2817 <change> 2818 Type of return value has been changed from @old_type to @new_type. 2819 </change> 2820 <effect> 2821 The name of the appropriate symbol for this function on binary level has been changed from @old_value to @new_value. This may cause "undefined reference" linker error in old client applications. 2822 </effect> 2823</rule> 2824 2825<rule> 2826 <id> 2827 Global_Data_Symbol_Changed_Type 2828 </id> 2829 <severity> 2830 High 2831 </severity> 2832 <kind> 2833 Symbols 2834 </kind> 2835 <change> 2836 Type of this global data has been changed from @old_type to @new_type. 2837 </change> 2838 <effect> 2839 The name of the appropriate symbol for this data on binary level has been changed from @old_value to @new_value. This may cause "undefined reference" linker error in old client applications. 2840 </effect> 2841</rule> 2842 2843<rule> 2844 <id> 2845 Symbol_Changed_Parameters 2846 </id> 2847 <severity> 2848 High 2849 </severity> 2850 <kind> 2851 Symbols 2852 </kind> 2853 <change> 2854 Parameters list has been changed. 2855 </change> 2856 <effect> 2857 The name of the appropriate symbol for this function on binary level has been changed from @old_value to @new_value. This may cause "undefined reference" linker error in old client applications. 2858 </effect> 2859</rule> 2860 2861<rule> 2862 <id> 2863 Method_Became_Non_Const 2864 </id> 2865 <severity> 2866 High 2867 </severity> 2868 <kind> 2869 Symbols 2870 </kind> 2871 <change> 2872 Method became non-const. 2873 </change> 2874 <effect> 2875 The name of the appropriate symbol for this function on binary level has been changed from @old_value to @new_value. This may cause "undefined reference" linker error in old client applications. 2876 </effect> 2877</rule> 2878 2879<rule> 2880 <id> 2881 Method_Became_Const 2882 </id> 2883 <severity> 2884 High 2885 </severity> 2886 <kind> 2887 Symbols 2888 </kind> 2889 <change> 2890 Method became const. 2891 </change> 2892 <effect> 2893 The name of the appropriate symbol for this function on binary level has been changed from @old_value to @new_value. This may cause "undefined reference" linker error in old client applications. 2894 </effect> 2895</rule> 2896 2897<rule> 2898 <id> 2899 Method_Became_Volatile 2900 </id> 2901 <severity> 2902 High 2903 </severity> 2904 <kind> 2905 Symbols 2906 </kind> 2907 <change> 2908 Method became volatile. 2909 </change> 2910 <effect> 2911 The name of the appropriate symbol for this function on binary level has been changed from @old_value to @new_value. This may cause "undefined reference" linker error in old client applications. 2912 </effect> 2913</rule> 2914 2915<rule> 2916 <id> 2917 Method_Became_Non_Volatile 2918 </id> 2919 <severity> 2920 High 2921 </severity> 2922 <kind> 2923 Symbols 2924 </kind> 2925 <change> 2926 Method became non-volatile. 2927 </change> 2928 <effect> 2929 The name of the appropriate symbol for this function on binary level has been changed from @old_value to @new_value. This may cause "undefined reference" linker error in old client applications. 2930 </effect> 2931</rule> 2932 2933<rule> 2934 <id> 2935 Changed_Constant 2936 </id> 2937 <severity> 2938 Low 2939 </severity> 2940 <kind> 2941 Constants 2942 </kind> 2943 <change> 2944 The value of constant @target has been changed from @old_value to @new_value. 2945 </change> 2946 <effect> 2947 Applications will pass an old value of this constant as the parameter to the new-version library functions, that expect a new one. This may result in crash of incorrect behavior of applications. 2948 </effect> 2949</rule> 2950 2951<rule> 2952 <id> 2953 Added_Constant 2954 </id> 2955 <severity> 2956 Safe 2957 </severity> 2958 <kind> 2959 Constants 2960 </kind> 2961 <change> 2962 The constant @target with value @new_value has been added. 2963 </change> 2964 <effect> 2965 No effect. 2966 </effect> 2967</rule> 2968 2969<rule> 2970 <id> 2971 Removed_Constant 2972 </id> 2973 <severity> 2974 Low 2975 </severity> 2976 <kind> 2977 Constants 2978 </kind> 2979 <change> 2980 The constant @target with value @old_value has been removed. 2981 </change> 2982 <effect> 2983 The value of this constant may no longer be properly handled by new-version library functions. 2984 </effect> 2985</rule> 2986 2987<rule> 2988 <id> 2989 Field_Became_Volatile 2990 </id> 2991 <severity> 2992 Low 2993 </severity> 2994 <kind> 2995 Fields 2996 </kind> 2997 <change> 2998 Field @target became volatile. 2999 </change> 3000 <effect> 3001 The value of this field can begin to change in ways outside the control of old client applications. 3002 </effect> 3003</rule> 3004 3005<rule> 3006 <id> 3007 Field_Became_Non_Volatile 3008 </id> 3009 <severity> 3010 Safe 3011 </severity> 3012 <kind> 3013 Fields 3014 </kind> 3015 <change> 3016 Field @target became non-volatile. 3017 </change> 3018 <effect> 3019 No effect. 3020 </effect> 3021</rule> 3022 3023<rule> 3024 <id> 3025 Return_Value_Became_Volatile 3026 </id> 3027 <severity> 3028 Low 3029 </severity> 3030 <kind> 3031 Symbols 3032 </kind> 3033 <change> 3034 Return value became volatile. 3035 </change> 3036 <effect> 3037 Old client applications will get volatile object instead of non-volatile, but may be optimized by the compiler and cannot handle volatile objects. 3038 </effect> 3039</rule> 3040 3041<rule> 3042 <id> 3043 Parameter_Became_Non_Volatile 3044 </id> 3045 <severity> 3046 Low 3047 </severity> 3048 <kind> 3049 Symbols 3050 </kind> 3051 <change> 3052 Parameter @target became non-volatile. 3053 </change> 3054 <effect> 3055 Old client applications will pass volatile object to the function that may be optimized by the compiler and cannot handle volatile objects. 3056 </effect> 3057</rule> 3058 3059<rule> 3060 <id> 3061 Field_Type_Format 3062 </id> 3063 <severity> 3064 Medium 3065 </severity> 3066 <kind> 3067 Fields 3068 </kind> 3069 <change> 3070 Type of field @target has been changed from @old_value to @new_value of different format. 3071 </change> 3072 <effect> 3073 This field may be incorrectly initialized or accessed by applications. 3074 </effect> 3075</rule> 3076 3077<rule> 3078 <id> 3079 Field_BaseType_Format 3080 </id> 3081 <severity> 3082 Medium 3083 </severity> 3084 <kind> 3085 Fields 3086 </kind> 3087 <change> 3088 Base type of field @target has been changed from @old_value to @new_value of different format. 3089 </change> 3090 <effect> 3091 This field may be incorrectly initialized or accessed by applications. 3092 </effect> 3093</rule> 3094 3095<rule> 3096 <id> 3097 Parameter_Type_Format 3098 </id> 3099 <severity> 3100 Medium 3101 </severity> 3102 <kind> 3103 Parameters 3104 </kind> 3105 <change> 3106 Type of parameter @target has been changed from @old_value to @new_value of different format. 3107 </change> 3108 <effect> 3109 This parameter may be incorrectly initialized by applications. 3110 </effect> 3111</rule> 3112 3113<rule> 3114 <id> 3115 Parameter_BaseType_Format 3116 </id> 3117 <severity> 3118 Medium 3119 </severity> 3120 <kind> 3121 Parameters 3122 </kind> 3123 <change> 3124 Base type of parameter @target has been changed from @old_value to @new_value of different format. 3125 </change> 3126 <effect> 3127 This parameter may be incorrectly initialized by applications. 3128 </effect> 3129</rule> 3130 3131<rule> 3132 <id> 3133 Return_Type_Format 3134 </id> 3135 <severity> 3136 Medium 3137 </severity> 3138 <kind> 3139 Symbols 3140 </kind> 3141 <change> 3142 Type of return value has been changed from @old_value to @new_value of different format. 3143 </change> 3144 <effect> 3145 Applications will obtain a different return value and execution may change. 3146 </effect> 3147</rule> 3148 3149<rule> 3150 <id> 3151 Return_Type_And_Register 3152 </id> 3153 <severity> 3154 Medium 3155 </severity> 3156 <kind> 3157 Symbols 3158 </kind> 3159 <change> 3160 Type of return value has been changed from @old_value to @new_value. 3161 </change> 3162 <effect> 3163 The return value became passed in different register. Applications will read the wrong memory block instead of the return value. Also, distribution of parameters on the available registers and stack may be changed. 3164 </effect> 3165</rule> 3166 3167<rule> 3168 <id> 3169 Return_BaseType_Format 3170 </id> 3171 <severity> 3172 Medium 3173 </severity> 3174 <kind> 3175 Symbols 3176 </kind> 3177 <change> 3178 Base type of return value has been changed from @old_value to @new_value of different format. 3179 </change> 3180 <effect> 3181 This parameter may be incorrectly initialized by applications. 3182 </effect> 3183</rule> 3184 3185<rule> 3186 <id> 3187 Parameter_Became_Non_VaList 3188 </id> 3189 <severity> 3190 Low 3191 </severity> 3192 <kind> 3193 Parameters 3194 </kind> 3195 <change> 3196 Type of @param_pos parameter has been changed from ... (va_list) to @new_value. 3197 </change> 3198 <effect> 3199 This parameter may not be initialized by old clients. 3200 </effect> 3201</rule> 3202 3203<rule> 3204 <id> 3205 Parameter_Became_VaList 3206 </id> 3207 <severity> 3208 Low 3209 </severity> 3210 <kind> 3211 Parameters 3212 </kind> 3213 <change> 3214 Type of @param_pos parameter @target has been changed from @old_value to ... (va_list). 3215 </change> 3216 <effect> 3217 The semantic meaning of the parameter may change. 3218 </effect> 3219</rule> 3220 3221<rule> 3222 <id> 3223 Added_Enum_Member 3224 </id> 3225 <severity> 3226 Safe 3227 </severity> 3228 <kind> 3229 Constants 3230 </kind> 3231 <change> 3232 The member @target with value @new_value has been added. 3233 </change> 3234 <effect> 3235 No effect. 3236 </effect> 3237</rule> 3238 3239<rule> 3240 <id> 3241 Global_Data_Value_Changed 3242 </id> 3243 <severity> 3244 Low 3245 </severity> 3246 <kind> 3247 Symbols 3248 </kind> 3249 <change> 3250 The initial value of this global data has been changed from @old_value to @new_value. 3251 </change> 3252 <effect> 3253 Applications will use an old value of this data instead of the new one. This may cause incorrect behavior of applications. 3254 </effect> 3255</rule> 3256 3257<rule> 3258 <id> 3259 Field_Became_Mutable 3260 </id> 3261 <severity> 3262 Low 3263 </severity> 3264 <kind> 3265 Fields 3266 </kind> 3267 <change> 3268 Field @target became **mutable**. 3269 </change> 3270 <effect> 3271 The value of this field can begin to change in ways outside the control of old client applications. 3272 </effect> 3273</rule> 3274 3275<rule> 3276 <id> 3277 Field_Became_Non_Mutable 3278 </id> 3279 <severity> 3280 Low 3281 </severity> 3282 <kind> 3283 Fields 3284 </kind> 3285 <change> 3286 Field @target became **non-mutable**. 3287 </change> 3288 <effect> 3289 The value of this field can still be changed by const methods of old client applications, but it's not expected by new-version library. 3290 </effect> 3291</rule> 3292 3293<rule> 3294 <id> 3295 Method_Became_Private 3296 </id> 3297 <severity> 3298 Low 3299 </severity> 3300 <kind> 3301 Symbols 3302 </kind> 3303 <change> 3304 This method became **private**. 3305 </change> 3306 <effect> 3307 Old applications will continue using this method, but it may require a different initialization of the environment and parameters. 3308 </effect> 3309</rule> 3310 3311<rule> 3312 <id> 3313 Method_Became_Protected 3314 </id> 3315 <severity> 3316 Low 3317 </severity> 3318 <kind> 3319 Symbols 3320 </kind> 3321 <change> 3322 This method became **protected**. 3323 </change> 3324 <effect> 3325 Old applications will continue using this method, but it may require a different initialization of the environment and parameters. 3326 </effect> 3327</rule> 3328 3329<rule> 3330 <id> 3331 Method_Became_Public 3332 </id> 3333 <severity> 3334 Safe 3335 </severity> 3336 <kind> 3337 Symbols 3338 </kind> 3339 <change> 3340 This method became **public**. 3341 </change> 3342 <effect> 3343 No effect. 3344 </effect> 3345</rule> 3346 3347<rule> 3348 <id> 3349 Global_Data_Became_Private 3350 </id> 3351 <severity> 3352 Low 3353 </severity> 3354 <kind> 3355 Symbols 3356 </kind> 3357 <change> 3358 This global data became **private**. 3359 </change> 3360 <effect> 3361 Old applications will continue using this global data, but it may require a different initialization of the environment. 3362 </effect> 3363</rule> 3364 3365<rule> 3366 <id> 3367 Global_Data_Became_Protected 3368 </id> 3369 <severity> 3370 Low 3371 </severity> 3372 <kind> 3373 Symbols 3374 </kind> 3375 <change> 3376 This global data became **protected**. 3377 </change> 3378 <effect> 3379 Old applications will continue using this global data, but it may require a different initialization of the environment. 3380 </effect> 3381</rule> 3382 3383<rule> 3384 <id> 3385 Global_Data_Became_Public 3386 </id> 3387 <severity> 3388 Safe 3389 </severity> 3390 <kind> 3391 Symbols 3392 </kind> 3393 <change> 3394 This global data became **public**. 3395 </change> 3396 <effect> 3397 No effect. 3398 </effect> 3399</rule> 3400 3401<rule> 3402 <id> 3403 Field_Became_Const 3404 </id> 3405 <severity> 3406 Low 3407 </severity> 3408 <kind> 3409 Types 3410 </kind> 3411 <change> 3412 Field @target became **const**. 3413 </change> 3414 <effect> 3415 The value of this field is expected to be **const** in new library version, but can be modified by old applications. 3416 </effect> 3417</rule> 3418 3419<rule> 3420 <id> 3421 Field_Became_Non_Const 3422 </id> 3423 <severity> 3424 Safe 3425 </severity> 3426 <kind> 3427 Types 3428 </kind> 3429 <change> 3430 Field @target became **non-const**. 3431 </change> 3432 <effect> 3433 No effect. 3434 </effect> 3435</rule> 3436 3437<rule> 3438 <id> 3439 Field_Added_Const 3440 </id> 3441 <severity> 3442 Low 3443 </severity> 3444 <kind> 3445 Types 3446 </kind> 3447 <change> 3448 Added **const** qualifier to field @target. 3449 </change> 3450 <effect> 3451 The value of this field is expected to be **const** in new library version, but can be modified by old applications. 3452 </effect> 3453</rule> 3454 3455<rule> 3456 <id> 3457 Field_Removed_Const 3458 </id> 3459 <severity> 3460 Safe 3461 </severity> 3462 <kind> 3463 Types 3464 </kind> 3465 <change> 3466 Removed **const** qualifier from field @target. 3467 </change> 3468 <effect> 3469 No effect. 3470 </effect> 3471</rule> 3472 3473<rule> 3474 <id> 3475 Field_Became_Private 3476 </id> 3477 <severity> 3478 Low 3479 </severity> 3480 <kind> 3481 Types 3482 </kind> 3483 <change> 3484 Field @target became **private**. 3485 </change> 3486 <effect> 3487 Old applications will continue using this field, but it may require a different initialization of class object. 3488 </effect> 3489</rule> 3490 3491<rule> 3492 <id> 3493 Field_Became_Protected 3494 </id> 3495 <severity> 3496 Low 3497 </severity> 3498 <kind> 3499 Types 3500 </kind> 3501 <change> 3502 Field @target became **protected**. 3503 </change> 3504 <effect> 3505 Old applications will continue using this field, but it may require a different initialization of class object. 3506 </effect> 3507</rule> 3508 3509<rule> 3510 <id> 3511 Virtual_Method_Became_Pure 3512 </id> 3513 <severity> 3514 Medium 3515 </severity> 3516 <kind> 3517 Types 3518 </kind> 3519 <change> 3520 Virtual method @target became **pure**. 3521 </change> 3522 <effect> 3523 Old applications will not provide implementation for this pure virtual method. This may result in crash or incorrect behavior of applications. 3524 </effect> 3525</rule> 3526 3527<rule> 3528 <id> 3529 Virtual_Method_Became_Non_Pure 3530 </id> 3531 <severity> 3532 Safe 3533 </severity> 3534 <kind> 3535 Types 3536 </kind> 3537 <change> 3538 Virtual method @target became **non-pure**. 3539 </change> 3540 <effect> 3541 No effect. 3542 </effect> 3543</rule> 3544 3545<rule> 3546 <id> 3547 Type_Became_Opaque 3548 </id> 3549 <severity> 3550 Medium 3551 </severity> 3552 <kind> 3553 Types 3554 </kind> 3555 <change> 3556 This type became **opaque**. 3557 </change> 3558 <effect> 3559 The internal structure of this type is hidden in the new library version and may be different. This may result in crash or incorrect behavior of applications. 3560 </effect> 3561</rule> 3562 3563</rules> 3564