From 25f5c6955a65c99cc79b90751a5025e3bce69ddc Mon Sep 17 00:00:00 2001 From: Ludwig Maier Date: Sat, 28 Sep 2013 12:27:24 +0200 Subject: [PATCH] fixed bug which modified DAQOPSERVER and TRB3_SERVER environment variables after calling init_ports() --- libtrbnet/trb3sim.c | 10 ++++++---- libtrbnet/trbnet.c | 12 +++++++----- trbnetd/server/Makefile | 2 +- trbnetd/trbnetrpc.c | 8 +++++--- 4 files changed, 19 insertions(+), 13 deletions(-) diff --git a/libtrbnet/trb3sim.c b/libtrbnet/trb3sim.c index 76c6940..4cc5f9a 100644 --- a/libtrbnet/trb3sim.c +++ b/libtrbnet/trb3sim.c @@ -56,7 +56,8 @@ int init_ports() .ai_canonname = NULL, .ai_next = NULL }; - const char* trb3_port = NULL; + char trb3Server[256] = ""; + const char *trb3_port = NULL; char* tmp = NULL; int status = -1; @@ -80,14 +81,15 @@ int init_ports() /* Get TRB3 IP-Address */ tmp = getenv("TRB3_SERVER"); if (tmp != NULL) { - char* separator = NULL; - if ((separator = rindex(tmp, ':')) != NULL) { + char *separator = NULL; + strncpy(trb3Server, tmp, 256); + if ((separator = rindex(trb3Server, ':')) != NULL) { *separator = '\0'; trb3_port = separator + 1; } else { trb3_port = TRB3_UDP_PORT_NEW; } - strncpy(trb3_server, tmp, NI_MAXHOST); + strncpy(trb3_server, trb3Server, NI_MAXHOST); } else { /* Choose default name and port */ trb3_port = TRB3_UDP_PORT_OLD; diff --git a/libtrbnet/trbnet.c b/libtrbnet/trbnet.c index 9faad35..9477d43 100644 --- a/libtrbnet/trbnet.c +++ b/libtrbnet/trbnet.c @@ -1758,8 +1758,9 @@ int init_ports() .ai_canonname = NULL, .ai_next = NULL }; - const char* trb3_port = NULL; - char* tmp = NULL; + char trb3Server[256] = ""; + const char *trb3_port = NULL; + const char *tmp = NULL; int status = -1; trb_errno = TRB_NONE; @@ -1781,14 +1782,15 @@ int init_ports() /* Get TRB3 IP-Address */ tmp = getenv("TRB3_SERVER"); if (tmp != NULL) { - char* separator = NULL; - if ((separator = rindex(tmp, ':')) != NULL) { + char *separator = NULL; + strncpy(trb3Server, tmp, 256); + if ((separator = rindex(trb3Server, ':')) != NULL) { *separator = '\0'; trb3_port = separator + 1; } else { trb3_port = TRB3_UDP_PORT_NEW; } - strncpy(trb3_server, tmp, NI_MAXHOST); + strncpy(trb3_server, trb3Server, NI_MAXHOST); } else { /* Choose default name and port */ trb3_port = TRB3_UDP_PORT_OLD; diff --git a/trbnetd/server/Makefile b/trbnetd/server/Makefile index a67084a..c747f11 100644 --- a/trbnetd/server/Makefile +++ b/trbnetd/server/Makefile @@ -103,7 +103,7 @@ depend: install: $(TARGETS) mkdir -p $(DESTDIR)/bin - install -m 775 $(TARGETS) $(DESTDIR)/bin/ + install -m 775 $(TARGETS) $(DESTDIR)/binlocal/ # ------------ Dependencies -------------------------------------------- diff --git a/trbnetd/trbnetrpc.c b/trbnetd/trbnetrpc.c index 9f605fb..ad1107f 100644 --- a/trbnetd/trbnetrpc.c +++ b/trbnetd/trbnetrpc.c @@ -30,16 +30,18 @@ int trb_connect(const char *server) uint32_t server_rpc_prog_id = TRBNETRPCPROG; if (server == NULL) { - char *tmp; + char daqopServer[256] = ""; + const char *tmp; tmp = getenv("DAQOPSERVER"); if (tmp != NULL) { uint32_t id = 0; char* separator = NULL; - if ((separator = rindex(tmp, ':')) != NULL) { + strncpy(daqopServer, tmp, 256); + if ((separator = rindex(daqopServer, ':')) != NULL) { *separator = '\0'; id = strtoul(separator + 1, NULL, 0); } - strncpy(trb_server, tmp, 128); + strncpy(trb_server, daqopServer, 128); server_rpc_prog_id = ((server_rpc_prog_id & 0xffff00ff) | (id << 8)); } else { sprintf(trb_server, "etraxp023"); -- 2.43.0