Summary: Generalized the CppTrace into a Clang trace because we don't currently have separate checkers for Obj-C and Cpp. Happy to separate them later if there is a good reason Reviewed By: akotulski Differential Revision: D4394952 fbshipit-source-id: e288761master
parent
73f219560d
commit
685f205dda
@ -0,0 +1,12 @@
|
||||
(*
|
||||
* Copyright (c) 2017 - present Facebook, Inc.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This source code is licensed under the BSD style license found in the
|
||||
* LICENSE file in the root directory of this source tree. An additional grant
|
||||
* of patent rights can be found in the PATENTS file in the same directory.
|
||||
*)
|
||||
|
||||
open! IStd
|
||||
|
||||
include Trace.S
|
@ -0,0 +1,25 @@
|
||||
# Copyright (c) 2017 - present Facebook, Inc.
|
||||
# All rights reserved.
|
||||
#
|
||||
# This source code is licensed under the BSD style license found in the
|
||||
# LICENSE file in the root directory of this source tree. An additional grant
|
||||
# of patent rights can be found in the PATENTS file in the same directory.
|
||||
|
||||
TESTS_DIR = ../../..
|
||||
|
||||
IPHONESIMULATOR_ISYSROOT_SUFFIX = /Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk
|
||||
|
||||
XCODEROOT = $(shell xcode-select -p)
|
||||
|
||||
CLANG_OPTIONS = -x objective-c \
|
||||
-isysroot $(XCODEROOT)$(IPHONESIMULATOR_ISYSROOT_SUFFIX) \
|
||||
-mios-simulator-version-min=8.2 --target=x86_64-apple-darwin14 -c \
|
||||
|
||||
ANALYZER = quandary
|
||||
INFER_OPTIONS = --no-filtering --debug-exceptions --project-root $(TESTS_DIR) --iphoneos-target-sdk-version 8.0
|
||||
INFERPRINT_OPTIONS = --issues-tests
|
||||
|
||||
SOURCES = \
|
||||
$(wildcard *.m) \
|
||||
|
||||
include $(TESTS_DIR)/clang.make
|
@ -0,0 +1,33 @@
|
||||
/*
|
||||
* Copyright (c) 2017 - present Facebook, Inc.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This source code is licensed under the BSD style license found in the
|
||||
* LICENSE file in the root directory of this source tree. An additional grant
|
||||
* of patent rights can be found in the PATENTS file in the same directory.
|
||||
*/
|
||||
|
||||
#import <Foundation/NSObject.h>
|
||||
|
||||
@interface InferTaint : NSObject {
|
||||
}
|
||||
|
||||
+ (NSObject*)source;
|
||||
+ (void)sink:(NSObject*)param;
|
||||
+ (void)notASink:(NSObject*)param;
|
||||
@end
|
||||
|
||||
void callSinkDirectBad() {
|
||||
NSObject* source = [InferTaint source];
|
||||
[InferTaint sink:source];
|
||||
}
|
||||
|
||||
void callSinkOnNonSourceOk() {
|
||||
NSObject* source = [NSObject new];
|
||||
[InferTaint sink:source];
|
||||
}
|
||||
|
||||
void callNonSinkOnSourceOk() {
|
||||
NSObject* source = [InferTaint source];
|
||||
[InferTaint notASink:source];
|
||||
}
|
@ -0,0 +1 @@
|
||||
codetoanalyze/objc/quandary/basics.m, callSinkDirectBad, 2, QUANDARY_TAINT_ERROR, [return from InferTaint_source,call to InferTaint_sink:]
|
Loading…
Reference in new issue