From 2af75a7e56c70cc8a6386299475f5dfc5b361fe7 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Zden=C4=9Bk=20=C5=A0ustr?= Date: Wed, 25 May 2011 08:07:01 +0000 Subject: [PATCH] - Handling error returned by gethostbyname() (Savannah Bug #67627) --- org.glite.jobid.api-c/src/cjobid.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/org.glite.jobid.api-c/src/cjobid.c b/org.glite.jobid.api-c/src/cjobid.c index bfd4203..e046b0c 100644 --- a/org.glite.jobid.api-c/src/cjobid.c +++ b/org.glite.jobid.api-c/src/cjobid.c @@ -51,6 +51,7 @@ int glite_jobid_recreate(const char* bkserver, int port, const char *unique, gli struct timeval tv; int skip; char* portbeg; + char* rndaddr = NULL; struct hostent* he; @@ -58,16 +59,18 @@ int glite_jobid_recreate(const char* bkserver, int port, const char *unique, gli return EINVAL; if (unique == NULL) { + srandom(tv.tv_usec); gethostname(hostname, 100); he = gethostbyname(hostname); - assert(he->h_length > 0); + if (!he) asprintf(&rndaddr,"%d.%d.%d.%d",rand()%256,rand()%256,rand()%256,rand()%256); gettimeofday(&tv, NULL); - srandom(tv.tv_usec); skip = strlen(hostname); skip += sprintf(hostname + skip, "-IP:0x%x-pid:%d-rnd:%d-time:%d:%d", - *((int*)he->h_addr_list[0]), getpid(), (int)random(), - (int)tv.tv_sec, (int)tv.tv_usec); + rndaddr ? rndaddr : *((int*)he->h_addr_list[0]), + getpid(), (int)random(), (int)tv.tv_sec, (int)tv.tv_usec); + free(he); + free(rndaddr); } *jobId = NULL; -- 1.8.2.3