summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/modules/m_ident.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/modules/m_ident.cpp b/src/modules/m_ident.cpp
index cacb405cb..040e856d4 100644
--- a/src/modules/m_ident.cpp
+++ b/src/modules/m_ident.cpp
@@ -52,7 +52,7 @@ class RFC1413 : public InspSocket
// so we just display a notice, and tidy off the ident_data.
if (u && (Instance->SE->GetRef(ufd) == u))
{
- char *newident;
+ char newident[MAXBUF];
u->Shrink("ident_data");
u->WriteServ("NOTICE "+std::string(u->nick)+" :*** Could not find your ident, using ~"+std::string(u->ident)+" instead.");
strcpy(newident,"~");
@@ -221,7 +221,14 @@ class ModuleIdent : public Module
user->Extend("ident_data", (char*)ident);
}
else
+ {
+ char newident[MAXBUF];
+ user->WriteServ("NOTICE "+std::string(user->nick)+" :*** Could not find your ident, using ~"+std::string(user->ident)+" instead.");
+ strcpy(newident,"~");
+ strlcat(newident,user->ident,IDENTMAX);
+ strlcpy(user->ident,newident,IDENTMAX);
delete ident;
+ }
}
virtual bool OnCheckReady(userrec* user)