projects
/
privoxy.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Declare the code "stable"
[privoxy.git]
/
actions.c
diff --git
a/actions.c
b/actions.c
index
38ddfc9
..
f089836
100644
(file)
--- a/
actions.c
+++ b/
actions.c
@@
-1,4
+1,4
@@
-const char actions_rcs[] = "$Id: actions.c,v 1.8
3 2012/06/08 15:15:11
fabiankeil Exp $";
+const char actions_rcs[] = "$Id: actions.c,v 1.8
6 2012/11/11 12:37:10
fabiankeil Exp $";
/*********************************************************************
*
* File : $Source: /cvsroot/ijbswa/current/actions.c,v $
/*********************************************************************
*
* File : $Source: /cvsroot/ijbswa/current/actions.c,v $
@@
-156,11
+156,7
@@
jb_err merge_actions (struct action_spec *dest,
if (str)
{
freez(dest->string[i]);
if (str)
{
freez(dest->string[i]);
- dest->string[i] = strdup(str);
- if (NULL == dest->string[i])
- {
- return JB_ERR_MEMORY;
- }
+ dest->string[i] = strdup_or_die(str);
}
}
}
}
@@
-212,7
+208,7
@@
jb_err merge_actions (struct action_spec *dest,
* 1 : dest = Destination of copy.
* 2 : src = Source for copy.
*
* 1 : dest = Destination of copy.
* 2 : src = Source for copy.
*
- * Returns :
N/A
+ * Returns :
JB_ERR_OK or JB_ERR_MEMORY
*
*********************************************************************/
jb_err copy_action (struct action_spec *dest,
*
*********************************************************************/
jb_err copy_action (struct action_spec *dest,
@@
-232,11
+228,7
@@
jb_err copy_action (struct action_spec *dest,
char * str = src->string[i];
if (str)
{
char * str = src->string[i];
if (str)
{
- str = strdup(str);
- if (!str)
- {
- return JB_ERR_MEMORY;
- }
+ str = strdup_or_die(str);
dest->string[i] = str;
}
}
dest->string[i] = str;
}
}
@@
-403,7
+395,17
@@
jb_err get_action_token(char **line, char **name, char **value)
str++;
*value = str;
str++;
*value = str;
- str = strchr(str, '}');
+ /* The value ends with the first non-escaped closing curly brace */
+ while ((str = strchr(str, '}')) != NULL)
+ {
+ if (str[-1] == '\\')
+ {
+ /* Overwrite the '\' so the action doesn't see it. */
+ string_move(str-1, str);
+ continue;
+ }
+ break;
+ }
if (str == NULL)
{
/* error */
if (str == NULL)
{
/* error */
@@
-739,11
+741,7
@@
jb_err merge_current_action (struct current_action_spec *dest,
char * str = src->string[i];
if (str)
{
char * str = src->string[i];
if (str)
{
- str = strdup(str);
- if (!str)
- {
- return JB_ERR_MEMORY;
- }
+ str = strdup_or_die(str);
freez(dest->string[i]);
dest->string[i] = str;
}
freez(dest->string[i]);
dest->string[i] = str;
}
@@
-1330,15
+1328,7
@@
static int load_one_actions_file(struct client_state *csp, int fileid)
*
* buf + 1 to skip the leading '{'
*/
*
* buf + 1 to skip the leading '{'
*/
- actions_buf = strdup(buf + 1);
- if (actions_buf == NULL)
- {
- fclose(fp);
- log_error(LOG_LEVEL_FATAL,
- "can't load actions file '%s': out of memory",
- csp->config->actions_file[fileid]);
- return 1; /* never get here */
- }
+ actions_buf = strdup_or_die(buf + 1);
/* check we have a trailing } and then trim it */
end = actions_buf + strlen(actions_buf) - 1;
/* check we have a trailing } and then trim it */
end = actions_buf + strlen(actions_buf) - 1;
@@
-1391,14
+1381,7
@@
static int load_one_actions_file(struct client_state *csp, int fileid)
char *version_string, *fields[3];
int num_fields;
char *version_string, *fields[3];
int num_fields;
- if ((version_string = strdup(buf + 20)) == NULL)
- {
- fclose(fp);
- log_error(LOG_LEVEL_FATAL,
- "can't load actions file '%s': out of memory!",
- csp->config->actions_file[fileid]);
- return 1; /* never get here */
- }
+ version_string = strdup_or_die(buf + 20);
num_fields = ssplit(version_string, ".", fields, SZ(fields));
num_fields = ssplit(version_string, ".", fields, SZ(fields));
@@
-1482,14
+1465,7
@@
static int load_one_actions_file(struct client_state *csp, int fileid)
return 1; /* never get here */
}
return 1; /* never get here */
}
- if ((new_alias->name = strdup(buf)) == NULL)
- {
- fclose(fp);
- log_error(LOG_LEVEL_FATAL,
- "can't load actions file '%s': out of memory!",
- csp->config->actions_file[fileid]);
- return 1; /* never get here */
- }
+ new_alias->name = strdup_or_die(buf);
strlcpy(actions_buf, start, sizeof(actions_buf));
strlcpy(actions_buf, start, sizeof(actions_buf));
@@
-1603,7
+1579,7
@@
char * actions_to_text(const struct action_spec *action)
{
unsigned long mask = action->mask;
unsigned long add = action->add;
{
unsigned long mask = action->mask;
unsigned long add = action->add;
- char *result = strdup("");
+ char *result = strdup
_or_die
("");
struct list_entry * lst;
/* sanity - prevents "-feature +feature" */
struct list_entry * lst;
/* sanity - prevents "-feature +feature" */
@@
-1692,7
+1668,7
@@
char * actions_to_html(const struct client_state *csp,
{
unsigned long mask = action->mask;
unsigned long add = action->add;
{
unsigned long mask = action->mask;
unsigned long add = action->add;
- char *result = strdup("");
+ char *result = strdup
_or_die
("");
struct list_entry * lst;
/* sanity - prevents "-feature +feature" */
struct list_entry * lst;
/* sanity - prevents "-feature +feature" */
@@
-1798,9
+1774,9
@@
char *current_action_to_html(const struct client_state *csp,
{
unsigned long flags = action->flags;
struct list_entry * lst;
{
unsigned long flags = action->flags;
struct list_entry * lst;
- char *result = strdup("");
- char *active = strdup("");
- char *inactive = strdup("");
+ char *result = strdup
_or_die
("");
+ char *active = strdup
_or_die
("");
+ char *inactive = strdup
_or_die
("");
#define DEFINE_ACTION_BOOL(__name, __bit) \
if (flags & __bit) \
#define DEFINE_ACTION_BOOL(__name, __bit) \
if (flags & __bit) \