]> granicus.if.org Git - curl/commitdiff
tests: fixed variable might be clobbered warning
authorDan Fandrich <dan@coneharvesters.com>
Sat, 12 Nov 2016 11:33:10 +0000 (12:33 +0100)
committerDan Fandrich <dan@coneharvesters.com>
Sat, 12 Nov 2016 11:37:24 +0000 (12:37 +0100)
This stops the compiler from potentially making invalid assumptions
about the immutability of sdp and sap across the longjmp boundary.

tests/server/tftpd.c

index afc0884e0dae7852200af44ef268003b243d2736..07a063829f5d50d029504fc98b0db134f3e671cc 100644 (file)
@@ -1232,19 +1232,17 @@ static void sendtftp(struct testcase *test, struct formats *pf)
 {
   int size;
   ssize_t n;
-  /* This is volatile to live through a siglongjmp */
+  /* These are volatile to live through a siglongjmp */
   volatile unsigned short sendblock; /* block count */
-  struct tftphdr *sdp;      /* data buffer */
-  struct tftphdr *sap;      /* ack buffer */
+  struct tftphdr * volatile sdp = r_init(); /* data buffer */
+  struct tftphdr * const sap = &ackbuf.hdr; /* ack buffer */
 
   sendblock = 1;
 #if defined(HAVE_ALARM) && defined(SIGALRM)
   mysignal(SIGALRM, timer);
 #endif
-  sdp = r_init();
-  sap = &ackbuf.hdr;
   do {
-    size = readit(test, &sdp, pf->f_convert);
+    size = readit(test, (struct tftphdr **)&sdp, pf->f_convert);
     if(size < 0) {
       nak(errno + 100);
       return;