ircd_announceserv: fix inappropriate use of strshare (such as calling free() on a stringref, which will crash the services daemon)

This commit is contained in:
William Pitcock 2012-10-04 05:04:42 +00:00
parent 6b4777173a
commit 8ccecba62a
1 changed files with 8 additions and 8 deletions

View File

@ -34,10 +34,10 @@ command_t as_activate = { "ACTIVATE", N_("Activate the requested announcement fo
command_t as_cancel = { "CANCEL", N_("Cancels your requested announcement."), AC_AUTHENTICATED, 0, as_cmd_cancel, { .path = "contrib/as_cancel" } };
struct asreq_ {
char *nick;
stringref nick;
char *subject;
time_t announce_ts;
char *creator;
stringref creator;
char *text;
};
@ -176,7 +176,7 @@ static void as_cmd_request(sourceinfo_t *si, int parc, char *parv[])
{
char *subject = parv[0];
char *text = parv[1];
char *target;
stringref target;
char *subject2;
char buf [BUFSIZE];
mowgli_node_t *n;
@ -283,9 +283,9 @@ static void as_cmd_activate(sourceinfo_t *si, int parc, char *parv[])
mowgli_node_delete(n, &as_reqlist);
free(subject2);
free(l->nick);
strshare_unref(l->nick);
free(l->subject);
free(l->creator);
strshare_unref(l->creator);
free(l->text);
free(l);
@ -321,9 +321,9 @@ static void as_cmd_reject(sourceinfo_t *si, int parc, char *parv[])
logcommand(si, CMDLOG_REQUEST, "REJECT: \2%s\2", nick);
mowgli_node_delete(n, &as_reqlist);
free(l->nick);
strshare_unref(l->nick);
free(l->subject);
free(l->creator);
strshare_unref(l->creator);
free(l->text);
free(l);
return;
@ -362,7 +362,7 @@ static void as_cmd_cancel(sourceinfo_t *si, int parc, char *parv[])
{
asreq_t *l;
mowgli_node_t *n;
char *target;
stringref target;
target = entity(si->smu)->name;