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

« back to all changes in this revision

Viewing changes to libclamav/c++/llvm/test/CodeGen/Generic/stack-protector.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 -o - | grep {__stack_chk_guard}
2
 
; RUN: llc < %s -o - | grep {__stack_chk_fail}
3
 
 
4
 
@"\01LC" = internal constant [11 x i8] c"buf == %s\0A\00"               ; <[11 x i8]*> [#uses=1]
5
 
 
6
 
define void @test(i8* %a) nounwind ssp {
7
 
entry:
8
 
        %a_addr = alloca i8*            ; <i8**> [#uses=2]
9
 
        %buf = alloca [8 x i8]          ; <[8 x i8]*> [#uses=2]
10
 
        %"alloca point" = bitcast i32 0 to i32          ; <i32> [#uses=0]
11
 
        store i8* %a, i8** %a_addr
12
 
        %buf1 = bitcast [8 x i8]* %buf to i8*           ; <i8*> [#uses=1]
13
 
        %0 = load i8** %a_addr, align 4         ; <i8*> [#uses=1]
14
 
        %1 = call i8* @strcpy(i8* %buf1, i8* %0) nounwind               ; <i8*> [#uses=0]
15
 
        %buf2 = bitcast [8 x i8]* %buf to i8*           ; <i8*> [#uses=1]
16
 
        %2 = call i32 (i8*, ...)* @printf(i8* getelementptr ([11 x i8]* @"\01LC", i32 0, i32 0), i8* %buf2) nounwind            ; <i32> [#uses=0]
17
 
        br label %return
18
 
 
19
 
return:         ; preds = %entry
20
 
        ret void
21
 
}
22
 
 
23
 
declare i8* @strcpy(i8*, i8*) nounwind
24
 
 
25
 
declare i32 @printf(i8*, ...) nounwind