12d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines// RUN: %clangxx_asan -O0 -g %s -o %t && ASAN_OPTIONS=handle_ioctl=1 not %run %t 2>&1 | FileCheck %s 22d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines// RUN: %clangxx_asan -O3 -g %s -o %t && ASAN_OPTIONS=handle_ioctl=1 not %run %t 2>&1 | FileCheck %s 3745dd0d296e7bef712df4b5c7f86c72534953738Evgeniy Stepanov 42d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines// RUN: %clangxx_asan -O0 -g %s -o %t && %run %t 52d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines// RUN: %clangxx_asan -O3 -g %s -o %t && %run %t 6745dd0d296e7bef712df4b5c7f86c72534953738Evgeniy Stepanov 7745dd0d296e7bef712df4b5c7f86c72534953738Evgeniy Stepanov#include <assert.h> 8745dd0d296e7bef712df4b5c7f86c72534953738Evgeniy Stepanov#include <stdlib.h> 9745dd0d296e7bef712df4b5c7f86c72534953738Evgeniy Stepanov#include <sys/ioctl.h> 10745dd0d296e7bef712df4b5c7f86c72534953738Evgeniy Stepanov#include <sys/socket.h> 11745dd0d296e7bef712df4b5c7f86c72534953738Evgeniy Stepanov#include <unistd.h> 12745dd0d296e7bef712df4b5c7f86c72534953738Evgeniy Stepanov 13745dd0d296e7bef712df4b5c7f86c72534953738Evgeniy Stepanovint main(int argc, char **argv) { 14745dd0d296e7bef712df4b5c7f86c72534953738Evgeniy Stepanov int fd = socket(AF_INET, SOCK_DGRAM, 0); 15745dd0d296e7bef712df4b5c7f86c72534953738Evgeniy Stepanov 16745dd0d296e7bef712df4b5c7f86c72534953738Evgeniy Stepanov int nonblock; 17745dd0d296e7bef712df4b5c7f86c72534953738Evgeniy Stepanov int res = ioctl(fd, FIONBIO, &nonblock + 1); 18745dd0d296e7bef712df4b5c7f86c72534953738Evgeniy Stepanov // CHECK: AddressSanitizer: stack-buffer-overflow 19745dd0d296e7bef712df4b5c7f86c72534953738Evgeniy Stepanov // CHECK: READ of size 4 at 20ed936c1d3a8db321b45d2e249159ec48c6450043Alexey Samsonov // CHECK: {{#.* in main .*ioctl.cc:}}[[@LINE-3]] 21745dd0d296e7bef712df4b5c7f86c72534953738Evgeniy Stepanov assert(res == 0); 22745dd0d296e7bef712df4b5c7f86c72534953738Evgeniy Stepanov close(fd); 23745dd0d296e7bef712df4b5c7f86c72534953738Evgeniy Stepanov return 0; 24745dd0d296e7bef712df4b5c7f86c72534953738Evgeniy Stepanov} 25