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