Ignore:
Timestamp:
Nov 24, 2016, 1:14:11 PM (9 years ago)
Author:
Silvan Scherrer
Message:

Samba Server: update vendor to version 4.4.3

File:
1 edited

Legend:

Unmodified
Added
Removed
  • vendor/current/lib/replace/getifaddrs.c

    r860 r988  
    2323   License along with this library; if not, see <http://www.gnu.org/licenses/>.
    2424*/
    25 
    26 #define SOCKET_WRAPPER_NOT_REPLACE
    2725
    2826#include "replace.h"
     
    114112                if (ioctl(fd, SIOCGIFFLAGS, &ifr[i]) == -1) {
    115113                        freeifaddrs(*ifap);
     114                        close(fd);
    116115                        return -1;
    117116                }
    118117
    119118                curif = calloc(1, sizeof(struct ifaddrs));
     119                if (curif == NULL) {
     120                        freeifaddrs(*ifap);
     121                        close(fd);
     122                        return -1;
     123                }
    120124                curif->ifa_name = strdup(ifr[i].ifr_name);
     125                if (curif->ifa_name == NULL) {
     126                        free(curif);
     127                        freeifaddrs(*ifap);
     128                        close(fd);
     129                        return -1;
     130                }
    121131                curif->ifa_flags = ifr[i].ifr_flags;
    122132                curif->ifa_dstaddr = NULL;
     
    127137                if (ioctl(fd, SIOCGIFADDR, &ifr[i]) != -1) {
    128138                        curif->ifa_addr = sockaddr_dup(&ifr[i].ifr_addr);
     139                        if (curif->ifa_addr == NULL) {
     140                                free(curif->ifa_name);
     141                                free(curif);
     142                                freeifaddrs(*ifap);
     143                                close(fd);
     144                                return -1;
     145                        }
    129146                }
    130147
     
    132149                if (ioctl(fd, SIOCGIFNETMASK, &ifr[i]) != -1) {
    133150                        curif->ifa_netmask = sockaddr_dup(&ifr[i].ifr_addr);
     151                        if (curif->ifa_netmask == NULL) {
     152                                if (curif->ifa_addr != NULL) {
     153                                        free(curif->ifa_addr);
     154                                }
     155                                free(curif->ifa_name);
     156                                free(curif);
     157                                freeifaddrs(*ifap);
     158                                close(fd);
     159                                return -1;
     160                        }
    134161                }
    135162
Note: See TracChangeset for help on using the changeset viewer.