]> git.sur5r.net Git - openldap/blobdiff - servers/slurpd/admin.c
Avoid sprintf buffer overrun if huge hostname
[openldap] / servers / slurpd / admin.c
index af28544d18451144c85cced4163bdcca26f2aa00..b34cce996f71d831283e6b5094da7410271fa550 100644 (file)
@@ -1,5 +1,18 @@
-/*
- * Copyright (c) 1996 Regents of the University of Michigan.
+/* $OpenLDAP$ */
+/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
+ *
+ * Copyright 1998-2006 The OpenLDAP Foundation.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted only as authorized by the OpenLDAP
+ * Public License.
+ *
+ * A copy of this license is available in file LICENSE in the
+ * top-level directory of the distribution or, alternatively, at
+ * <http://www.OpenLDAP.org/license.html>.
+ */
+/* Portions Copyright (c) 1996 Regents of the University of Michigan.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms are permitted
@@ -9,6 +22,10 @@
  * software without specific prior written permission. This software
  * is provided ``as is'' without express or implied warranty.
  */
+/* ACKNOWLEDGEMENTS:
+ * This work was originally developed by the University of Michigan
+ * (as part of U-MICH LDAP).
+ */
 
 /*
  * admin.c - routines for performing administrative tasks, e.g. on-the-fly
@@ -18,6 +35,7 @@
 #include "portable.h"
 
 #include <stdio.h>
+#include <ac/stdlib.h>
 
 #include <ac/signal.h>
 
@@ -35,9 +53,9 @@
  * slurpd receives a USR2 signal, it will dump its replication 
  * queue to the disk file given by SLURPD_DUMPFILE.
  */
-void
-do_admin()
+RETSIGTYPE
+do_admin( int sig )
 {
     sglob->rq->rq_dump( sglob->rq );
-    (void) SIGNAL( SIGUSR2, (void *) do_admin );
+    (void) SIGNAL_REINSTALL( sig, do_admin );
 }