List for cgit developers and users
 help / color / mirror / Atom feed
* [PATCH 1/3] Return const char * in cgit_{httpscheme, hosturl, rooturl}()
@ 2013-04-01 15:11 cgit
  2013-04-01 15:11 ` [PATCH 2/3] Maŕk cgit_environment members const cgit
                   ` (2 more replies)
  0 siblings, 3 replies; 8+ messages in thread
From: cgit @ 2013-04-01 15:11 UTC (permalink / raw)


The return values of these functions are essentially constant and should
never be modified.

Note that this will introduce a compiler warning when we try to free the
return value of any of these functions. However, given that all of these
currently return statically allocated strings in some cases, they need
to be refactored before this can be done anyway.

Signed-off-by: Lukas Fleischer <cgit at cryptocrack.de>
---
 ui-atom.c   | 4 ++--
 ui-shared.c | 8 ++++----
 ui-shared.h | 6 +++---
 3 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/ui-atom.c b/ui-atom.c
index 5b5525d..1554088 100644
--- a/ui-atom.c
+++ b/ui-atom.c
@@ -10,7 +10,7 @@
 #include "html.h"
 #include "ui-shared.h"
 
-static void add_entry(struct commit *commit, char *host)
+static void add_entry(struct commit *commit, const char *host)
 {
 	char delim = '&';
 	char *hex;
@@ -79,7 +79,7 @@ static void add_entry(struct commit *commit, char *host)
 
 void cgit_print_atom(char *tip, char *path, int max_count)
 {
-	char *host;
+	const char *host;
 	const char *argv[] = {NULL, tip, NULL, NULL, NULL};
 	struct commit *commit;
 	struct rev_info rev;
diff --git a/ui-shared.c b/ui-shared.c
index d4fb3d9..7a726c1 100644
--- a/ui-shared.c
+++ b/ui-shared.c
@@ -34,7 +34,7 @@ void cgit_print_error(const char *msg)
 	html("</div>\n");
 }
 
-char *cgit_httpscheme()
+const char *cgit_httpscheme()
 {
 	if (ctx.env.https && !strcmp(ctx.env.https, "on"))
 		return "https://";
@@ -42,7 +42,7 @@ char *cgit_httpscheme()
 		return "http://";
 }
 
-char *cgit_hosturl()
+const char *cgit_hosturl()
 {
 	if (ctx.env.http_host)
 		return ctx.env.http_host;
@@ -53,7 +53,7 @@ char *cgit_hosturl()
 	return xstrdup(fmt("%s:%s", ctx.env.server_name, ctx.env.server_port));
 }
 
-char *cgit_rooturl()
+const char *cgit_rooturl()
 {
 	if (ctx.cfg.virtual_root)
 		return fmt("%s/", ctx.cfg.virtual_root);
@@ -651,7 +651,7 @@ void cgit_print_docstart(struct cgit_context *ctx)
 		return;
 	}
 
-	char *host = cgit_hosturl();
+	const char *host = cgit_hosturl();
 	html(cgit_doctype);
 	html("<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>\n");
 	html("<head>\n");
diff --git a/ui-shared.h b/ui-shared.h
index 87a7dac..0666388 100644
--- a/ui-shared.h
+++ b/ui-shared.h
@@ -1,9 +1,9 @@
 #ifndef UI_SHARED_H
 #define UI_SHARED_H
 
-extern char *cgit_httpscheme();
-extern char *cgit_hosturl();
-extern char *cgit_rooturl();
+extern const char *cgit_httpscheme();
+extern const char *cgit_hosturl();
+extern const char *cgit_rooturl();
 extern char *cgit_repourl(const char *reponame);
 extern char *cgit_fileurl(const char *reponame, const char *pagename,
 			  const char *filename, const char *query);
-- 
1.8.2.411.g65a544e





^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH 2/3] Maŕk cgit_environment members const
  2013-04-01 15:11 [PATCH 1/3] Return const char * in cgit_{httpscheme, hosturl, rooturl}() cgit
@ 2013-04-01 15:11 ` cgit
  2013-04-04 14:17   ` Jason
  2013-04-01 15:11 ` [PATCH 3/3] Do not unnecessarily strdup() environment variables cgit
  2013-04-01 15:35 ` [PATCH 1/3] Return const char * in cgit_{httpscheme, hosturl, rooturl}() john
  2 siblings, 1 reply; 8+ messages in thread
From: cgit @ 2013-04-01 15:11 UTC (permalink / raw)


These reflect the values of environment variables and should never be
changed. Add another xstrdup() when we assign environment variables to
strings that are potentially non-constant.

Signed-off-by: Lukas Fleischer <cgit at cryptocrack.de>
---
 cgit.c |  4 ++--
 cgit.h | 20 ++++++++++----------
 2 files changed, 12 insertions(+), 12 deletions(-)

diff --git a/cgit.c b/cgit.c
index afafcce..d145f8a 100644
--- a/cgit.c
+++ b/cgit.c
@@ -401,9 +401,9 @@ static void prepare_context(struct cgit_context *ctx)
 	ctx->page.etag = NULL;
 	memset(&ctx->cfg.mimetypes, 0, sizeof(struct string_list));
 	if (ctx->env.script_name)
-		ctx->cfg.script_name = ctx->env.script_name;
+		ctx->cfg.script_name = xstrdup(ctx->env.script_name);
 	if (ctx->env.query_string)
-		ctx->qry.raw = ctx->env.query_string;
+		ctx->qry.raw = xstrdup(ctx->env.query_string);
 	if (!ctx->env.cgit_config)
 		ctx->env.cgit_config = CGIT_CONFIG;
 }
diff --git a/cgit.h b/cgit.h
index ed5cf14..081f669 100644
--- a/cgit.h
+++ b/cgit.h
@@ -255,16 +255,16 @@ struct cgit_page {
 };
 
 struct cgit_environment {
-	char *cgit_config;
-	char *http_host;
-	char *https;
-	char *no_http;
-	char *path_info;
-	char *query_string;
-	char *request_method;
-	char *script_name;
-	char *server_name;
-	char *server_port;
+	const char *cgit_config;
+	const char *http_host;
+	const char *https;
+	const char *no_http;
+	const char *path_info;
+	const char *query_string;
+	const char *request_method;
+	const char *script_name;
+	const char *server_name;
+	const char *server_port;
 };
 
 struct cgit_context {
-- 
1.8.2.411.g65a544e





^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH 3/3] Do not unnecessarily strdup() environment variables
  2013-04-01 15:11 [PATCH 1/3] Return const char * in cgit_{httpscheme, hosturl, rooturl}() cgit
  2013-04-01 15:11 ` [PATCH 2/3] Maŕk cgit_environment members const cgit
@ 2013-04-01 15:11 ` cgit
  2013-04-04 14:19   ` Jason
  2013-04-01 15:35 ` [PATCH 1/3] Return const char * in cgit_{httpscheme, hosturl, rooturl}() john
  2 siblings, 1 reply; 8+ messages in thread
From: cgit @ 2013-04-01 15:11 UTC (permalink / raw)


This reverts the memory duplication introduced in commit 60a2627, while
keeping everything else that has been cleaned up. The environment
variables are never modified, so we do not need to call xstrdupn() here.

Also, remove xstrdupn() which is no longer needed.

Signed-off-by: Lukas Fleischer <cgit at cryptocrack.de>
---
 cgit.c | 25 ++++++++++---------------
 1 file changed, 10 insertions(+), 15 deletions(-)

diff --git a/cgit.c b/cgit.c
index d145f8a..ca3034c 100644
--- a/cgit.c
+++ b/cgit.c
@@ -333,11 +333,6 @@ static void querystring_cb(const char *name, const char *value)
 	}
 }
 
-static char *xstrdupn(const char *str)
-{
-	return (str ? xstrdup(str) : NULL);
-}
-
 static void prepare_context(struct cgit_context *ctx)
 {
 	memset(ctx, 0, sizeof(*ctx));
@@ -382,16 +377,16 @@ static void prepare_context(struct cgit_context *ctx)
 	ctx->cfg.summary_tags = 10;
 	ctx->cfg.max_atom_items = 10;
 	ctx->cfg.ssdiff = 0;
-	ctx->env.cgit_config = xstrdupn(getenv("CGIT_CONFIG"));
-	ctx->env.http_host = xstrdupn(getenv("HTTP_HOST"));
-	ctx->env.https = xstrdupn(getenv("HTTPS"));
-	ctx->env.no_http = xstrdupn(getenv("NO_HTTP"));
-	ctx->env.path_info = xstrdupn(getenv("PATH_INFO"));
-	ctx->env.query_string = xstrdupn(getenv("QUERY_STRING"));
-	ctx->env.request_method = xstrdupn(getenv("REQUEST_METHOD"));
-	ctx->env.script_name = xstrdupn(getenv("SCRIPT_NAME"));
-	ctx->env.server_name = xstrdupn(getenv("SERVER_NAME"));
-	ctx->env.server_port = xstrdupn(getenv("SERVER_PORT"));
+	ctx->env.cgit_config = getenv("CGIT_CONFIG");
+	ctx->env.http_host = getenv("HTTP_HOST");
+	ctx->env.https = getenv("HTTPS");
+	ctx->env.no_http = getenv("NO_HTTP");
+	ctx->env.path_info = getenv("PATH_INFO");
+	ctx->env.query_string = getenv("QUERY_STRING");
+	ctx->env.request_method = getenv("REQUEST_METHOD");
+	ctx->env.script_name = getenv("SCRIPT_NAME");
+	ctx->env.server_name = getenv("SERVER_NAME");
+	ctx->env.server_port = getenv("SERVER_PORT");
 	ctx->page.mimetype = "text/html";
 	ctx->page.charset = PAGE_ENCODING;
 	ctx->page.filename = NULL;
-- 
1.8.2.411.g65a544e





^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH 1/3] Return const char * in cgit_{httpscheme, hosturl, rooturl}()
  2013-04-01 15:11 [PATCH 1/3] Return const char * in cgit_{httpscheme, hosturl, rooturl}() cgit
  2013-04-01 15:11 ` [PATCH 2/3] Maŕk cgit_environment members const cgit
  2013-04-01 15:11 ` [PATCH 3/3] Do not unnecessarily strdup() environment variables cgit
@ 2013-04-01 15:35 ` john
  2013-04-01 17:53   ` john
  2013-04-01 19:51   ` cgit
  2 siblings, 2 replies; 8+ messages in thread
From: john @ 2013-04-01 15:35 UTC (permalink / raw)


On Mon, Apr 01, 2013 at 05:11:13PM +0200, Lukas Fleischer wrote:
> The return values of these functions are essentially constant and should
> never be modified.
> 
> Note that this will introduce a compiler warning when we try to free the
> return value of any of these functions. However, given that all of these
> currently return statically allocated strings in some cases, they need
> to be refactored before this can be done anyway.

It looks like cgit_hosturl() already returns allocated memory in one
case, and cgit_rooturl() returns a static buffer from fmt().

I wonder if it's sensible to just set ctx.env.http_host to something
sensible in prepare_context() and get rid of cgit_hosturl completely,
especially since it is used in all requests anyway.

I think we can also remove cgit_rooturl since in main() we set
ctx.cfg.virtual_root to ctx.cfg.script_name in the same way this
function does, so there's no need to fall back to script_name when we're
rendering a page.

> Signed-off-by: Lukas Fleischer <cgit at cryptocrack.de>
> ---
>  ui-atom.c   | 4 ++--
>  ui-shared.c | 8 ++++----
>  ui-shared.h | 6 +++---
>  3 files changed, 9 insertions(+), 9 deletions(-)
> 
> diff --git a/ui-atom.c b/ui-atom.c
> index 5b5525d..1554088 100644
> --- a/ui-atom.c
> +++ b/ui-atom.c
> @@ -10,7 +10,7 @@
>  #include "html.h"
>  #include "ui-shared.h"
>  
> -static void add_entry(struct commit *commit, char *host)
> +static void add_entry(struct commit *commit, const char *host)
>  {
>  	char delim = '&';
>  	char *hex;
> @@ -79,7 +79,7 @@ static void add_entry(struct commit *commit, char *host)
>  
>  void cgit_print_atom(char *tip, char *path, int max_count)
>  {
> -	char *host;
> +	const char *host;
>  	const char *argv[] = {NULL, tip, NULL, NULL, NULL};
>  	struct commit *commit;
>  	struct rev_info rev;
> diff --git a/ui-shared.c b/ui-shared.c
> index d4fb3d9..7a726c1 100644
> --- a/ui-shared.c
> +++ b/ui-shared.c
> @@ -34,7 +34,7 @@ void cgit_print_error(const char *msg)
>  	html("</div>\n");
>  }
>  
> -char *cgit_httpscheme()
> +const char *cgit_httpscheme()
>  {
>  	if (ctx.env.https && !strcmp(ctx.env.https, "on"))
>  		return "https://";
> @@ -42,7 +42,7 @@ char *cgit_httpscheme()
>  		return "http://";
>  }
>  
> -char *cgit_hosturl()
> +const char *cgit_hosturl()
>  {
>  	if (ctx.env.http_host)
>  		return ctx.env.http_host;
> @@ -53,7 +53,7 @@ char *cgit_hosturl()
>  	return xstrdup(fmt("%s:%s", ctx.env.server_name, ctx.env.server_port));
>  }
>  
> -char *cgit_rooturl()
> +const char *cgit_rooturl()
>  {
>  	if (ctx.cfg.virtual_root)
>  		return fmt("%s/", ctx.cfg.virtual_root);
> @@ -651,7 +651,7 @@ void cgit_print_docstart(struct cgit_context *ctx)
>  		return;
>  	}
>  
> -	char *host = cgit_hosturl();
> +	const char *host = cgit_hosturl();
>  	html(cgit_doctype);
>  	html("<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>\n");
>  	html("<head>\n");
> diff --git a/ui-shared.h b/ui-shared.h
> index 87a7dac..0666388 100644
> --- a/ui-shared.h
> +++ b/ui-shared.h
> @@ -1,9 +1,9 @@
>  #ifndef UI_SHARED_H
>  #define UI_SHARED_H
>  
> -extern char *cgit_httpscheme();
> -extern char *cgit_hosturl();
> -extern char *cgit_rooturl();
> +extern const char *cgit_httpscheme();
> +extern const char *cgit_hosturl();
> +extern const char *cgit_rooturl();
>  extern char *cgit_repourl(const char *reponame);
>  extern char *cgit_fileurl(const char *reponame, const char *pagename,
>  			  const char *filename, const char *query);
> -- 
> 1.8.2.411.g65a544e




^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH 1/3] Return const char * in cgit_{httpscheme, hosturl, rooturl}()
  2013-04-01 15:35 ` [PATCH 1/3] Return const char * in cgit_{httpscheme, hosturl, rooturl}() john
@ 2013-04-01 17:53   ` john
  2013-04-01 19:51   ` cgit
  1 sibling, 0 replies; 8+ messages in thread
From: john @ 2013-04-01 17:53 UTC (permalink / raw)


On Mon, Apr 01, 2013 at 04:35:35PM +0100, John Keeping wrote:
> On Mon, Apr 01, 2013 at 05:11:13PM +0200, Lukas Fleischer wrote:
> > The return values of these functions are essentially constant and should
> > never be modified.
> > 
> > Note that this will introduce a compiler warning when we try to free the
> > return value of any of these functions. However, given that all of these
> > currently return statically allocated strings in some cases, they need
> > to be refactored before this can be done anyway.
> 
> It looks like cgit_hosturl() already returns allocated memory in one
> case, and cgit_rooturl() returns a static buffer from fmt().
> 
> I wonder if it's sensible to just set ctx.env.http_host to something
> sensible in prepare_context() and get rid of cgit_hosturl completely,
> especially since it is used in all requests anyway.
> 
> I think we can also remove cgit_rooturl since in main() we set
> ctx.cfg.virtual_root to ctx.cfg.script_name in the same way this
> function does, so there's no need to fall back to script_name when we're
> rendering a page.

Actually, I've just tried Clang's address sanitizer and everywhere that
tests for a trailing slash is an out-of-bounds memory access when
virtual_root is the empty string (as it is in the test suite).

I'll work up some patches for this and whatever else address sanitizer
finds.

> > Signed-off-by: Lukas Fleischer <cgit at cryptocrack.de>
> > ---
> >  ui-atom.c   | 4 ++--
> >  ui-shared.c | 8 ++++----
> >  ui-shared.h | 6 +++---
> >  3 files changed, 9 insertions(+), 9 deletions(-)
> > 
> > diff --git a/ui-atom.c b/ui-atom.c
> > index 5b5525d..1554088 100644
> > --- a/ui-atom.c
> > +++ b/ui-atom.c
> > @@ -10,7 +10,7 @@
> >  #include "html.h"
> >  #include "ui-shared.h"
> >  
> > -static void add_entry(struct commit *commit, char *host)
> > +static void add_entry(struct commit *commit, const char *host)
> >  {
> >  	char delim = '&';
> >  	char *hex;
> > @@ -79,7 +79,7 @@ static void add_entry(struct commit *commit, char *host)
> >  
> >  void cgit_print_atom(char *tip, char *path, int max_count)
> >  {
> > -	char *host;
> > +	const char *host;
> >  	const char *argv[] = {NULL, tip, NULL, NULL, NULL};
> >  	struct commit *commit;
> >  	struct rev_info rev;
> > diff --git a/ui-shared.c b/ui-shared.c
> > index d4fb3d9..7a726c1 100644
> > --- a/ui-shared.c
> > +++ b/ui-shared.c
> > @@ -34,7 +34,7 @@ void cgit_print_error(const char *msg)
> >  	html("</div>\n");
> >  }
> >  
> > -char *cgit_httpscheme()
> > +const char *cgit_httpscheme()
> >  {
> >  	if (ctx.env.https && !strcmp(ctx.env.https, "on"))
> >  		return "https://";
> > @@ -42,7 +42,7 @@ char *cgit_httpscheme()
> >  		return "http://";
> >  }
> >  
> > -char *cgit_hosturl()
> > +const char *cgit_hosturl()
> >  {
> >  	if (ctx.env.http_host)
> >  		return ctx.env.http_host;
> > @@ -53,7 +53,7 @@ char *cgit_hosturl()
> >  	return xstrdup(fmt("%s:%s", ctx.env.server_name, ctx.env.server_port));
> >  }
> >  
> > -char *cgit_rooturl()
> > +const char *cgit_rooturl()
> >  {
> >  	if (ctx.cfg.virtual_root)
> >  		return fmt("%s/", ctx.cfg.virtual_root);
> > @@ -651,7 +651,7 @@ void cgit_print_docstart(struct cgit_context *ctx)
> >  		return;
> >  	}
> >  
> > -	char *host = cgit_hosturl();
> > +	const char *host = cgit_hosturl();
> >  	html(cgit_doctype);
> >  	html("<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>\n");
> >  	html("<head>\n");
> > diff --git a/ui-shared.h b/ui-shared.h
> > index 87a7dac..0666388 100644
> > --- a/ui-shared.h
> > +++ b/ui-shared.h
> > @@ -1,9 +1,9 @@
> >  #ifndef UI_SHARED_H
> >  #define UI_SHARED_H
> >  
> > -extern char *cgit_httpscheme();
> > -extern char *cgit_hosturl();
> > -extern char *cgit_rooturl();
> > +extern const char *cgit_httpscheme();
> > +extern const char *cgit_hosturl();
> > +extern const char *cgit_rooturl();
> >  extern char *cgit_repourl(const char *reponame);
> >  extern char *cgit_fileurl(const char *reponame, const char *pagename,
> >  			  const char *filename, const char *query);
> > -- 
> > 1.8.2.411.g65a544e
> 
> _______________________________________________
> cgit mailing list
> cgit at hjemli.net
> http://hjemli.net/mailman/listinfo/cgit




^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH 1/3] Return const char * in cgit_{httpscheme, hosturl, rooturl}()
  2013-04-01 15:35 ` [PATCH 1/3] Return const char * in cgit_{httpscheme, hosturl, rooturl}() john
  2013-04-01 17:53   ` john
@ 2013-04-01 19:51   ` cgit
  1 sibling, 0 replies; 8+ messages in thread
From: cgit @ 2013-04-01 19:51 UTC (permalink / raw)


On Mon, Apr 01, 2013 at 04:35:35PM +0100, John Keeping wrote:
> On Mon, Apr 01, 2013 at 05:11:13PM +0200, Lukas Fleischer wrote:
> > The return values of these functions are essentially constant and should
> > never be modified.
> > 
> > Note that this will introduce a compiler warning when we try to free the
> > return value of any of these functions. However, given that all of these
> > currently return statically allocated strings in some cases, they need
> > to be refactored before this can be done anyway.
> 
> It looks like cgit_hosturl() already returns allocated memory in one
> case, and cgit_rooturl() returns a static buffer from fmt().
> 
> I wonder if it's sensible to just set ctx.env.http_host to something
> sensible in prepare_context() and get rid of cgit_hosturl completely,
> especially since it is used in all requests anyway.

Yeah, patch 1/3 was just (quick and dirty) preparatory work for patches
2/3 and 3/3. You should read the commit message like "This patch does it
wrong, but it helps with fixing the issues addressed in patches 2 and
3." -- I probably should have made it a bit clearer. A proper fix
requires a tiny bit more work, so feel free to come up with something to
base patches 2 and 3 on :)

> 
> I think we can also remove cgit_rooturl since in main() we set
> ctx.cfg.virtual_root to ctx.cfg.script_name in the same way this
> function does, so there's no need to fall back to script_name when we're
> rendering a page.
> 
> > Signed-off-by: Lukas Fleischer <cgit at cryptocrack.de>
> > ---
> >  ui-atom.c   | 4 ++--
> >  ui-shared.c | 8 ++++----
> >  ui-shared.h | 6 +++---
> >  3 files changed, 9 insertions(+), 9 deletions(-)
> > 
> > diff --git a/ui-atom.c b/ui-atom.c
> > index 5b5525d..1554088 100644
> > --- a/ui-atom.c
> > +++ b/ui-atom.c
> > @@ -10,7 +10,7 @@
> >  #include "html.h"
> >  #include "ui-shared.h"
> >  
> > -static void add_entry(struct commit *commit, char *host)
> > +static void add_entry(struct commit *commit, const char *host)
> >  {
> >  	char delim = '&';
> >  	char *hex;
> > @@ -79,7 +79,7 @@ static void add_entry(struct commit *commit, char *host)
> >  
> >  void cgit_print_atom(char *tip, char *path, int max_count)
> >  {
> > -	char *host;
> > +	const char *host;
> >  	const char *argv[] = {NULL, tip, NULL, NULL, NULL};
> >  	struct commit *commit;
> >  	struct rev_info rev;
> > diff --git a/ui-shared.c b/ui-shared.c
> > index d4fb3d9..7a726c1 100644
> > --- a/ui-shared.c
> > +++ b/ui-shared.c
> > @@ -34,7 +34,7 @@ void cgit_print_error(const char *msg)
> >  	html("</div>\n");
> >  }
> >  
> > -char *cgit_httpscheme()
> > +const char *cgit_httpscheme()
> >  {
> >  	if (ctx.env.https && !strcmp(ctx.env.https, "on"))
> >  		return "https://";
> > @@ -42,7 +42,7 @@ char *cgit_httpscheme()
> >  		return "http://";
> >  }
> >  
> > -char *cgit_hosturl()
> > +const char *cgit_hosturl()
> >  {
> >  	if (ctx.env.http_host)
> >  		return ctx.env.http_host;
> > @@ -53,7 +53,7 @@ char *cgit_hosturl()
> >  	return xstrdup(fmt("%s:%s", ctx.env.server_name, ctx.env.server_port));
> >  }
> >  
> > -char *cgit_rooturl()
> > +const char *cgit_rooturl()
> >  {
> >  	if (ctx.cfg.virtual_root)
> >  		return fmt("%s/", ctx.cfg.virtual_root);
> > @@ -651,7 +651,7 @@ void cgit_print_docstart(struct cgit_context *ctx)
> >  		return;
> >  	}
> >  
> > -	char *host = cgit_hosturl();
> > +	const char *host = cgit_hosturl();
> >  	html(cgit_doctype);
> >  	html("<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>\n");
> >  	html("<head>\n");
> > diff --git a/ui-shared.h b/ui-shared.h
> > index 87a7dac..0666388 100644
> > --- a/ui-shared.h
> > +++ b/ui-shared.h
> > @@ -1,9 +1,9 @@
> >  #ifndef UI_SHARED_H
> >  #define UI_SHARED_H
> >  
> > -extern char *cgit_httpscheme();
> > -extern char *cgit_hosturl();
> > -extern char *cgit_rooturl();
> > +extern const char *cgit_httpscheme();
> > +extern const char *cgit_hosturl();
> > +extern const char *cgit_rooturl();
> >  extern char *cgit_repourl(const char *reponame);
> >  extern char *cgit_fileurl(const char *reponame, const char *pagename,
> >  			  const char *filename, const char *query);
> > -- 
> > 1.8.2.411.g65a544e




^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH 2/3] Maŕk cgit_environment members const
  2013-04-01 15:11 ` [PATCH 2/3] Maŕk cgit_environment members const cgit
@ 2013-04-04 14:17   ` Jason
  0 siblings, 0 replies; 8+ messages in thread
From: Jason @ 2013-04-04 14:17 UTC (permalink / raw)


On Mon, Apr 1, 2013 at 5:11 PM, Lukas Fleischer <cgit at cryptocrack.de> wrote:
>  struct cgit_environment {
> -       char *cgit_config;
> -       char *http_host;
> -       char *https;
> -       char *no_http;
> -       char *path_info;
> -       char *query_string;
> -       char *request_method;
> -       char *script_name;
> -       char *server_name;
> -       char *server_port;
> +       const char *cgit_config;
> +       const char *http_host;
> +       const char *https;
> +       const char *no_http;
> +       const char *path_info;
> +       const char *query_string;
> +       const char *request_method;
> +       const char *script_name;
> +       const char *server_name;
> +       const char *server_port;
>  };

This is a very welcomed change. Thank you.




^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH 3/3] Do not unnecessarily strdup() environment variables
  2013-04-01 15:11 ` [PATCH 3/3] Do not unnecessarily strdup() environment variables cgit
@ 2013-04-04 14:19   ` Jason
  0 siblings, 0 replies; 8+ messages in thread
From: Jason @ 2013-04-04 14:19 UTC (permalink / raw)


Merged this series to `wip`.




^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2013-04-04 14:19 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-04-01 15:11 [PATCH 1/3] Return const char * in cgit_{httpscheme, hosturl, rooturl}() cgit
2013-04-01 15:11 ` [PATCH 2/3] Maŕk cgit_environment members const cgit
2013-04-04 14:17   ` Jason
2013-04-01 15:11 ` [PATCH 3/3] Do not unnecessarily strdup() environment variables cgit
2013-04-04 14:19   ` Jason
2013-04-01 15:35 ` [PATCH 1/3] Return const char * in cgit_{httpscheme, hosturl, rooturl}() john
2013-04-01 17:53   ` john
2013-04-01 19:51   ` cgit

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).