10908e483b27da82141d9494b61a06154b339068
angie
  Wed Apr 25 15:39:02 2012 -0700
Moving a freeMem inside an if where it belongs (according to commentsabout docRoot above, the problem should only manifest in command line mode
when docRoot can be NULL).

diff --git src/hg/lib/web.c src/hg/lib/web.c
index 24d24dc..27e561f 100644
--- src/hg/lib/web.c
+++ src/hg/lib/web.c
@@ -1358,32 +1358,34 @@
 if(hIsPreviewHost() || hIsPrivateHost())
     linkWithTimestamp = dyStringCreate("%s/%s-%ld%s", dyStringContents(fullDirName), baseName, mtime, extension);
 else
     linkWithTimestamp = dyStringCreate("%s/%s-v%s%s", dyStringContents(fullDirName), baseName, CGI_VERSION, extension);
 
 if(!fileExists(dyStringContents(linkWithTimestamp)))
     errAbort("Cannot find correct version of file '%s'; this is due to an installation error\n\nError details: %s does not exist",
              fileName, dyStringContents(linkWithTimestamp));
 
 // Free up all that extra memory
 dyStringFree(&realFileName);
 dyStringFree(&fullDirName);
 char *linkFull = dyStringCannibalize(&linkWithTimestamp);
 char *link = linkFull;
 if (docRoot != NULL)
+    {
     link = cloneString(linkFull + strlen(docRoot) + 1);
 freeMem(linkFull);
+    }
 
 if (wrapInHtml) // wrapped for christmas
     {
     struct dyString *wrapped = dyStringNew(0);
     if (js)
         dyStringPrintf(wrapped,"<script type='text/javascript' SRC='/%s'></script>\n", link);
     else if (style)
         dyStringPrintf(wrapped,"<LINK rel='STYLESHEET' href='/%s' TYPE='text/css' />\n", link);
     else // Will be image, since these are the only three choices allowed
         dyStringPrintf(wrapped,"<IMG src='/%s' />\n", link);
     freeMem(link);
     link = dyStringCannibalize(&wrapped);
     }
 
 return link;