1# 2# FreeRTOS memory safety proofs with CBMC. 3# Copyright (C) 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved. 4# 5# Permission is hereby granted, free of charge, to any person 6# obtaining a copy of this software and associated documentation 7# files (the "Software"), to deal in the Software without 8# restriction, including without limitation the rights to use, copy, 9# modify, merge, publish, distribute, sublicense, and/or sell copies 10# of the Software, and to permit persons to whom the Software is 11# furnished to do so, subject to the following conditions: 12# 13# The above copyright notice and this permission notice shall be 14# included in all copies or substantial portions of the Software. 15# 16# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 17# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 18# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 19# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS 20# BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN 21# ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 22# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 23# SOFTWARE. 24# 25# http://aws.amazon.com/freertos 26# http://www.FreeRTOS.org 27# 28 29{ 30 "ENTRY": "DHCPProcess", 31 32 # Minimal buffer size for maximum coverage, see harness for details. 33 "BUFFER_SIZE": 299, 34 35 # The number of times GetNetworkBufferWithDescriptor can be allowed to fail 36 # (plus 1). 37 "FAILURE_BOUND": 2, 38 39 "CBMCFLAGS": "--unwind 4 --unwindset strlen.0:11,memcmp.0:7,prvProcessDHCPReplies.0:8,prvCreatePartDHCPMessage.0:{FAILURE_BOUND} --nondet-static --flush", 40 "OBJS": 41 [ 42 "$(ENTRY)_harness.goto", 43 "$(FREERTOS_PLUS_TCP)/test/cbmc/stubs/cbmc.goto", 44 "$(FREERTOS_PLUS_TCP)/test/cbmc/stubs/freertos_api.goto", 45 "$(FREERTOS_PLUS_TCP)/source/FreeRTOS_DHCP.goto", 46 "$(FREERTOS_PLUS_TCP)/source/FreeRTOS_IP.goto", 47 "$(FREERTOS_PLUS_TCP)/source/FreeRTOS_ARP.goto" 48 ], 49 50 "DEF": 51 [ 52 "BUFFER_SIZE={BUFFER_SIZE}", 53 "CBMC_REQUIRE_NETWORKBUFFER_ETHERNETBUFFER_NONNULL=1", 54 "CBMC_GETNETWORKBUFFER_FAILURE_BOUND={FAILURE_BOUND}" 55 ] 56} 57