From b0a55b60c6d1f715244293e7fd81717a47e7753b Mon Sep 17 00:00:00 2001 From: "Roger A. Light" Date: Sat, 4 Feb 2023 19:48:16 +0000 Subject: [PATCH] Fuzzing: Keep connecting until successful. If there is a real problem, the fuzz timeout should be invoked. Fixes oss-fuzz #55667. This was a bug in the fuzz target only, not in the code being fuzzed. --- fuzzing/broker/broker_fuzz.cpp | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/fuzzing/broker/broker_fuzz.cpp b/fuzzing/broker/broker_fuzz.cpp index 021c9f59..71c9d8bf 100644 --- a/fuzzing/broker/broker_fuzz.cpp +++ b/fuzzing/broker/broker_fuzz.cpp @@ -75,16 +75,14 @@ int connect_retrying(int port) addr.sin_addr.s_addr = inet_addr("127.0.0.1"); sock = socket(AF_INET, SOCK_STREAM, 0); - for(int i=0; i<500; i++){ /* 500x10ms = 5 seconds max wait */ + while(1){ errno = 0; rc = connect(sock, (struct sockaddr *)&addr, sizeof(addr)); - if(rc < 0 && errno == ECONNREFUSED){ + if(rc < 0){ struct timespec ts; ts.tv_sec = 0; ts.tv_nsec = 10000000; /* 10ms */ nanosleep(&ts, NULL); - }else if(rc < 0){ - return -1; }else{ break; }