~ubuntu-branches/ubuntu/maverick/clamav/maverick-security

« back to all changes in this revision

Viewing changes to libclamav/c++/llvm/test/CodeGen/X86/2008-04-17-CoalescerBug.ll

  • Committer: Bazaar Package Importer
  • Author(s): Marc Deslauriers
  • Date: 2011-02-23 14:27:51 UTC
  • mfrom: (0.35.17 sid)
  • Revision ID: james.westby@ubuntu.com-20110223142751-o9xb8jyvhkh75d0n
Tags: 0.96.5+dfsg-1ubuntu1.10.10.2
* SECURITY UPDATE: denial of service via double free in vba processing
  - libclamav/vba_extract.c: set buf to NULL when it gets freed.
  - http://git.clamav.net/gitweb?p=clamav-devel.git;a=commit;h=d21fb8d975f8c9688894a8cef4d50d977022e09f
  - CVE-2011-1003

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
; RUN: llc < %s -mtriple=i386-apple-darwin | grep xorl | grep {%e}
2
 
; Make sure xorl operands are 32-bit registers.
3
 
 
4
 
        %struct.tm = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i8* }
5
 
        %struct.wxDateTime = type { %struct.wxLongLong }
6
 
        %"struct.wxDateTime::TimeZone" = type { i32 }
7
 
        %struct.wxLongLong = type { i64 }
8
 
        %struct.wxString = type { %struct.wxStringBase }
9
 
        %struct.wxStringBase = type { i32* }
10
 
@.str = external constant [27 x i32]            ; <[27 x i32]*> [#uses=1]
11
 
@.str4 = external constant [14 x i32]           ; <[14 x i32]*> [#uses=1]
12
 
@_ZZNK10wxDateTime5GetTmERKNS_8TimeZoneEE12__FUNCTION__ = external constant [6 x i8]            ; <[6 x i8]*> [#uses=1]
13
 
@.str33 = external constant [29 x i32]          ; <[29 x i32]*> [#uses=1]
14
 
@.str89 = external constant [5 x i32]           ; <[5 x i32]*> [#uses=1]
15
 
 
16
 
define void @_ZNK10wxDateTime6FormatEPKwRKNS_8TimeZoneE(%struct.wxString* noalias sret  %agg.result, %struct.wxDateTime* %this, i32* %format, %"struct.wxDateTime::TimeZone"* %tz, i1 %foo) {
17
 
entry:
18
 
        br i1 %foo, label %bb116.i, label %bb115.critedge.i
19
 
bb115.critedge.i:               ; preds = %entry
20
 
        ret void
21
 
bb116.i:                ; preds = %entry
22
 
        br i1 %foo, label %bb52.i.i, label %bb3118
23
 
bb3118:         ; preds = %bb116.i
24
 
        ret void
25
 
bb52.i.i:               ; preds = %bb116.i
26
 
        br i1 %foo, label %bb142.i, label %bb115.critedge.i.i
27
 
bb115.critedge.i.i:             ; preds = %bb52.i.i
28
 
        ret void
29
 
bb142.i:                ; preds = %bb52.i.i
30
 
        br i1 %foo, label %bb161.i, label %bb182.i
31
 
bb161.i:                ; preds = %bb142.i
32
 
        br label %bb3261
33
 
bb182.i:                ; preds = %bb142.i
34
 
        ret void
35
 
bb3261:         ; preds = %bb7834, %bb161.i
36
 
        %tmp3263 = load i32* null, align 4              ; <i32> [#uses=1]
37
 
        %tmp3264 = icmp eq i32 %tmp3263, 37             ; <i1> [#uses=1]
38
 
        br i1 %tmp3264, label %bb3306, label %bb3267
39
 
bb3267:         ; preds = %bb3261
40
 
        ret void
41
 
bb3306:         ; preds = %bb3261
42
 
        %tmp3310 = invoke %struct.wxStringBase* @_ZN12wxStringBaseaSEPKw( %struct.wxStringBase* null, i32* getelementptr ([5 x i32]* @.str89, i32 0, i32 0) )
43
 
                        to label %bb3314 unwind label %lpad             ; <%struct.wxStringBase*> [#uses=0]
44
 
bb3314:         ; preds = %bb3306
45
 
        %tmp3316 = load i32* null, align 4              ; <i32> [#uses=1]
46
 
        switch i32 %tmp3316, label %bb7595 [
47
 
                 i32 0, label %bb7819
48
 
                 i32 37, label %bb7806
49
 
                 i32 66, label %bb3477
50
 
                 i32 72, label %bb5334
51
 
                 i32 73, label %bb5484
52
 
                 i32 77, label %bb6118
53
 
                 i32 83, label %bb6406
54
 
                 i32 85, label %bb6556
55
 
                 i32 87, label %bb6708
56
 
                 i32 89, label %bb7308
57
 
                 i32 98, label %bb3477
58
 
                 i32 99, label %bb3626
59
 
                 i32 100, label %bb5184
60
 
                 i32 106, label %bb5657
61
 
                 i32 108, label %bb5809
62
 
                 i32 109, label %bb5968
63
 
                 i32 119, label %bb6860
64
 
                 i32 120, label %bb3626
65
 
                 i32 121, label %bb7158
66
 
        ]
67
 
bb3477:         ; preds = %bb3314, %bb3314
68
 
        ret void
69
 
bb3626:         ; preds = %bb3314, %bb3314
70
 
        ret void
71
 
bb5184:         ; preds = %bb3314
72
 
        ret void
73
 
bb5334:         ; preds = %bb3314
74
 
        ret void
75
 
bb5484:         ; preds = %bb3314
76
 
        ret void
77
 
bb5657:         ; preds = %bb3314
78
 
        %tmp5661 = invoke i16 @_ZNK10wxDateTime12GetDayOfYearERKNS_8TimeZoneE( %struct.wxDateTime* %this, %"struct.wxDateTime::TimeZone"* %tz ) zeroext 
79
 
                        to label %invcont5660 unwind label %lpad                ; <i16> [#uses=0]
80
 
invcont5660:            ; preds = %bb5657
81
 
        ret void
82
 
bb5809:         ; preds = %bb3314
83
 
        %tmp61.i.i8486 = icmp sgt i64 0, -1             ; <i1> [#uses=1]
84
 
        %tmp95.i.i8490 = icmp slt i64 0, 2147483647000          ; <i1> [#uses=1]
85
 
        %bothcond9308 = and i1 %tmp61.i.i8486, %tmp95.i.i8490           ; <i1> [#uses=1]
86
 
        br i1 %bothcond9308, label %bb91.i8504, label %bb115.critedge.i.i8492
87
 
bb115.critedge.i.i8492:         ; preds = %bb5809
88
 
        ret void
89
 
bb91.i8504:             ; preds = %bb5809
90
 
        br i1 %foo, label %bb155.i8541, label %bb182.i8560
91
 
bb155.i8541:            ; preds = %bb91.i8504
92
 
        %tmp156.i85398700 = invoke %struct.tm* @gmtime_r( i32* null, %struct.tm* null )
93
 
                        to label %bb182.i8560 unwind label %lpad                ; <%struct.tm*> [#uses=1]
94
 
bb182.i8560:            ; preds = %bb155.i8541, %bb91.i8504
95
 
        %tm48.0.i8558 = phi %struct.tm* [ null, %bb91.i8504 ], [ %tmp156.i85398700, %bb155.i8541 ]              ; <%struct.tm*> [#uses=0]
96
 
        br i1 %foo, label %bb278.i8617, label %bb187.i8591
97
 
bb187.i8591:            ; preds = %bb182.i8560
98
 
        %tmp245.i8588 = srem i64 0, 86400000            ; <i64> [#uses=1]
99
 
        br i1 %foo, label %bb264.i8592, label %bb265.i8606
100
 
bb264.i8592:            ; preds = %bb187.i8591
101
 
        ret void
102
 
bb265.i8606:            ; preds = %bb187.i8591
103
 
        %tmp268269.i8593 = trunc i64 %tmp245.i8588 to i32               ; <i32> [#uses=1]
104
 
        %tmp273.i8594 = srem i32 %tmp268269.i8593, 1000         ; <i32> [#uses=1]
105
 
        %tmp273274.i8595 = trunc i32 %tmp273.i8594 to i16               ; <i16> [#uses=1]
106
 
        br label %invcont5814
107
 
bb278.i8617:            ; preds = %bb182.i8560
108
 
        %timeOnly50.0.i8622 = add i32 0, 0              ; <i32> [#uses=1]
109
 
        br i1 %foo, label %bb440.i8663, label %bb448.i8694
110
 
bb440.i8663:            ; preds = %bb278.i8617
111
 
        invoke void @_Z10wxOnAssertPKwiPKcS0_S0_( i32* getelementptr ([27 x i32]* @.str, i32 0, i32 0), i32 1717, i8* getelementptr ([6 x i8]* @_ZZNK10wxDateTime5GetTmERKNS_8TimeZoneEE12__FUNCTION__, i32 0, i32 0), i32* getelementptr ([29 x i32]* @.str33, i32 0, i32 0), i32* getelementptr ([14 x i32]* @.str4, i32 0, i32 0) )
112
 
                        to label %bb448.i8694 unwind label %lpad
113
 
bb448.i8694:            ; preds = %bb440.i8663, %bb278.i8617
114
 
        %tmp477.i8669 = srem i32 %timeOnly50.0.i8622, 1000              ; <i32> [#uses=1]
115
 
        %tmp477478.i8670 = trunc i32 %tmp477.i8669 to i16               ; <i16> [#uses=1]
116
 
        br label %invcont5814
117
 
invcont5814:            ; preds = %bb448.i8694, %bb265.i8606
118
 
        %tmp812.0.0 = phi i16 [ %tmp477478.i8670, %bb448.i8694 ], [ %tmp273274.i8595, %bb265.i8606 ]            ; <i16> [#uses=1]
119
 
        %tmp58165817 = zext i16 %tmp812.0.0 to i32              ; <i32> [#uses=1]
120
 
        invoke void (%struct.wxString*, i32*, ...)* @_ZN8wxString6FormatEPKwz( %struct.wxString* noalias sret  null, i32* null, i32 %tmp58165817 )
121
 
                        to label %invcont5831 unwind label %lpad
122
 
invcont5831:            ; preds = %invcont5814
123
 
        %tmp5862 = invoke i8 @_ZN12wxStringBase10ConcatSelfEmPKwm( %struct.wxStringBase* null, i32 0, i32* null, i32 0 ) zeroext 
124
 
                        to label %bb7834 unwind label %lpad8185         ; <i8> [#uses=0]
125
 
bb5968:         ; preds = %bb3314
126
 
        invoke void (%struct.wxString*, i32*, ...)* @_ZN8wxString6FormatEPKwz( %struct.wxString* noalias sret  null, i32* null, i32 0 )
127
 
                        to label %invcont5981 unwind label %lpad
128
 
invcont5981:            ; preds = %bb5968
129
 
        ret void
130
 
bb6118:         ; preds = %bb3314
131
 
        ret void
132
 
bb6406:         ; preds = %bb3314
133
 
        ret void
134
 
bb6556:         ; preds = %bb3314
135
 
        ret void
136
 
bb6708:         ; preds = %bb3314
137
 
        ret void
138
 
bb6860:         ; preds = %bb3314
139
 
        ret void
140
 
bb7158:         ; preds = %bb3314
141
 
        ret void
142
 
bb7308:         ; preds = %bb3314
143
 
        ret void
144
 
bb7595:         ; preds = %bb3314
145
 
        ret void
146
 
bb7806:         ; preds = %bb3314
147
 
        %tmp7814 = invoke %struct.wxStringBase* @_ZN12wxStringBase6appendEmw( %struct.wxStringBase* null, i32 1, i32 0 )
148
 
                        to label %bb7834 unwind label %lpad             ; <%struct.wxStringBase*> [#uses=0]
149
 
bb7819:         ; preds = %bb3314
150
 
        ret void
151
 
bb7834:         ; preds = %bb7806, %invcont5831
152
 
        br label %bb3261
153
 
lpad:           ; preds = %bb7806, %bb5968, %invcont5814, %bb440.i8663, %bb155.i8541, %bb5657, %bb3306
154
 
        ret void
155
 
lpad8185:               ; preds = %invcont5831
156
 
        ret void
157
 
}
158
 
 
159
 
declare void @_Z10wxOnAssertPKwiPKcS0_S0_(i32*, i32, i8*, i32*, i32*)
160
 
 
161
 
declare i8 @_ZN12wxStringBase10ConcatSelfEmPKwm(%struct.wxStringBase*, i32, i32*, i32) zeroext 
162
 
 
163
 
declare %struct.tm* @gmtime_r(i32*, %struct.tm*)
164
 
 
165
 
declare i16 @_ZNK10wxDateTime12GetDayOfYearERKNS_8TimeZoneE(%struct.wxDateTime*, %"struct.wxDateTime::TimeZone"*) zeroext 
166
 
 
167
 
declare %struct.wxStringBase* @_ZN12wxStringBase6appendEmw(%struct.wxStringBase*, i32, i32)
168
 
 
169
 
declare %struct.wxStringBase* @_ZN12wxStringBaseaSEPKw(%struct.wxStringBase*, i32*)
170
 
 
171
 
declare void @_ZN8wxString6FormatEPKwz(%struct.wxString* noalias sret , i32*, ...)