X-Git-Url: http://git.meshlink.io/?a=blobdiff_plain;ds=sidebyside;f=avahi-compat-libdns_sd%2Fcompat.c;h=36bb84a5784407afbe2d03cdaf4467a31211d945;hb=648db528f5cc197c38f7b17bb09dd53958df6302;hp=9dc22817632034a8b3864c7907b66dbb914c7ebc;hpb=c9109b4b6f4eca16ad867d91bd6683ac6355be76;p=catta diff --git a/avahi-compat-libdns_sd/compat.c b/avahi-compat-libdns_sd/compat.c index 9dc2281..36bb84a 100644 --- a/avahi-compat-libdns_sd/compat.c +++ b/avahi-compat-libdns_sd/compat.c @@ -469,25 +469,26 @@ static void sdref_unref(DNSServiceRef sdref) { } int DNSSD_API DNSServiceRefSockFD(DNSServiceRef sdref) { - if (!sdref || sdref->n_ref <= 0) - return -1; AVAHI_WARN_LINKAGE; + if (!sdref || sdref->n_ref <= 0) + return -1; + return sdref->main_fd; } DNSServiceErrorType DNSSD_API DNSServiceProcessResult(DNSServiceRef sdref) { DNSServiceErrorType ret = kDNSServiceErr_Unknown; - assert(sdref); - assert(sdref->n_ref >= 1); - AVAHI_WARN_LINKAGE; - ASSERT_SUCCESS(pthread_mutex_lock(&sdref->mutex)); - + if (!sdref || sdref->n_ref <= 0) + return kDNSServiceErr_BadParam; + sdref_ref(sdref); + + ASSERT_SUCCESS(pthread_mutex_lock(&sdref->mutex)); /* Cleanup notification socket */ if (read_command(sdref->main_fd) != COMMAND_POLL_DONE) @@ -512,10 +513,10 @@ DNSServiceErrorType DNSSD_API DNSServiceProcessResult(DNSServiceRef sdref) { finish: - sdref_unref(sdref); - ASSERT_SUCCESS(pthread_mutex_unlock(&sdref->mutex)); + sdref_unref(sdref); + return ret; } @@ -611,13 +612,10 @@ DNSServiceErrorType DNSSD_API DNSServiceBrowse( AVAHI_WARN_LINKAGE; - if (!ret_sdref) + if (!ret_sdref || !regtype) return kDNSServiceErr_BadParam; - *ret_sdref = NULL; - assert(regtype); - if (interface == kDNSServiceInterfaceIndexLocalOnly || flags != 0) { AVAHI_WARN_UNSUPPORTED; return kDNSServiceErr_Unsupported; @@ -739,11 +737,9 @@ DNSServiceErrorType DNSSD_API DNSServiceResolve( AVAHI_WARN_LINKAGE; - assert(ret_sdref); - assert(name); - assert(regtype); - assert(domain); - assert(callback); + if (!ret_sdref || !name || !regtype || !domain || !callback) + return kDNSServiceErr_BadParam; + *ret_sdref = NULL; if (interface == kDNSServiceInterfaceIndexLocalOnly || flags != 0) { AVAHI_WARN_UNSUPPORTED; @@ -792,9 +788,8 @@ int DNSSD_API DNSServiceConstructFullName ( AVAHI_WARN_LINKAGE; - assert(fullName); - assert(regtype); - assert(domain); + if (!fullName || !regtype || !domain) + return -1; if (avahi_service_name_join(fullName, kDNSServiceMaxDomainName, service, regtype, domain) < 0) return -1; @@ -853,8 +848,9 @@ DNSServiceErrorType DNSSD_API DNSServiceEnumerateDomains( AVAHI_WARN_LINKAGE; - assert(ret_sdref); - assert(callback); + if (!ret_sdref || !callback) + return kDNSServiceErr_BadParam; + *ret_sdref = NULL; if (interface == kDNSServiceInterfaceIndexLocalOnly || (flags != kDNSServiceFlagsBrowseDomains && flags != kDNSServiceFlagsRegistrationDomains)) { @@ -1094,15 +1090,14 @@ DNSServiceErrorType DNSSD_API DNSServiceRegister ( AVAHI_WARN_LINKAGE; - if (!ret_sdref) + if (!ret_sdref || !regtype) return kDNSServiceErr_BadParam; - *ret_sdref = NULL; - if (!regtype) - return kDNSServiceErr_BadParam; - - assert(txtRecord || txtLen == 0); + if (!txtRecord) { + txtLen = 1; + txtRecord = ""; + } if (interface == kDNSServiceInterfaceIndexLocalOnly || flags) { AVAHI_WARN_UNSUPPORTED; @@ -1210,10 +1205,12 @@ DNSServiceErrorType DNSSD_API DNSServiceUpdateRecord( int ret = kDNSServiceErr_Unknown; AvahiStringList *txt = NULL; - assert(sdref); AVAHI_WARN_LINKAGE; + if (!sdref || sdref->n_ref <= 0) + return kDNSServiceErr_BadParam; + if (flags || rref) { AVAHI_WARN_UNSUPPORTED; return kDNSServiceErr_Unsupported;