ospf(6)d: do not unlink the control socket

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

ospf(6)d: do not unlink the control socket

Remi Locherer
In 2018 we discussed that it is OK when ripd leaves its control socket
laying around:
https://marc.info/?l=openbsd-tech&m=154101413029926&w=2

When mestre@ adapted ldpd in June this year I was reminded to also adapt
ospfd and ospf6d for consistent.

OK?

Remi


Index: ospfd/control.c
===================================================================
RCS file: /cvs/src/usr.sbin/ospfd/control.c,v
retrieving revision 1.45
diff -u -p -r1.45 control.c
--- ospfd/control.c 29 Aug 2018 08:43:16 -0000 1.45
+++ ospfd/control.c 12 Sep 2020 13:13:54 -0000
@@ -125,13 +125,10 @@ control_listen(void)
 }
 
 void
-control_cleanup(char *path)
+control_cleanup(void)
 {
- if (path == NULL)
- return;
  event_del(&control_state.ev);
  event_del(&control_state.evt);
- unlink(path);
 }
 
 /* ARGSUSED */
Index: ospfd/control.h
===================================================================
RCS file: /cvs/src/usr.sbin/ospfd/control.h,v
retrieving revision 1.7
diff -u -p -r1.7 control.h
--- ospfd/control.h 29 Aug 2018 08:43:16 -0000 1.7
+++ ospfd/control.h 12 Sep 2020 13:14:15 -0000
@@ -40,6 +40,6 @@ int control_listen(void);
 void control_accept(int, short, void *);
 void control_dispatch_imsg(int, short, void *);
 int control_imsg_relay(struct imsg *);
-void control_cleanup(char *);
+void control_cleanup(void);
 
 #endif /* _CONTROL_H_ */
Index: ospfd/ospfd.c
===================================================================
RCS file: /cvs/src/usr.sbin/ospfd/ospfd.c,v
retrieving revision 1.113
diff -u -p -r1.113 ospfd.c
--- ospfd/ospfd.c 26 Jun 2020 19:04:38 -0000 1.113
+++ ospfd/ospfd.c 12 Sep 2020 13:14:42 -0000
@@ -282,8 +282,6 @@ main(int argc, char *argv[])
 
  if (unveil("/", "r") == -1)
  fatal("unveil");
- if (unveil(ospfd_conf->csock, "c") == -1)
- fatal("unveil");
  if (unveil(NULL, NULL) == -1)
  fatal("unveil");
 
@@ -318,7 +316,7 @@ ospfd_shutdown(void)
  msgbuf_clear(&iev_rde->ibuf.w);
  close(iev_rde->ibuf.fd);
 
- control_cleanup(ospfd_conf->csock);
+ control_cleanup();
  while ((r = SIMPLEQ_FIRST(&ospfd_conf->redist_list)) != NULL) {
  SIMPLEQ_REMOVE_HEAD(&ospfd_conf->redist_list, entry);
  free(r);
Index: ospf6d/control.c
===================================================================
RCS file: /cvs/src/usr.sbin/ospf6d/control.c,v
retrieving revision 1.28
diff -u -p -r1.28 control.c
--- ospf6d/control.c 1 Jan 2020 10:09:34 -0000 1.28
+++ ospf6d/control.c 12 Sep 2020 13:29:06 -0000
@@ -124,13 +124,10 @@ control_listen(void)
 }
 
 void
-control_cleanup(char *path)
+control_cleanup(void)
 {
- if (path == NULL)
- return;
  event_del(&control_state.ev);
  event_del(&control_state.evt);
- unlink(path);
 }
 
 /* ARGSUSED */
Index: ospf6d/control.h
===================================================================
RCS file: /cvs/src/usr.sbin/ospf6d/control.h,v
retrieving revision 1.6
diff -u -p -r1.6 control.h
--- ospf6d/control.h 1 Sep 2018 19:21:10 -0000 1.6
+++ ospf6d/control.h 12 Sep 2020 13:27:50 -0000
@@ -40,6 +40,6 @@ int control_listen(void);
 void control_accept(int, short, void *);
 void control_dispatch_imsg(int, short, void *);
 int control_imsg_relay(struct imsg *);
-void control_cleanup(char *);
+void control_cleanup(void);
 
 #endif /* _CONTROL_H_ */
Index: ospf6d/ospf6d.c
===================================================================
RCS file: /cvs/src/usr.sbin/ospf6d/ospf6d.c,v
retrieving revision 1.47
diff -u -p -r1.47 ospf6d.c
--- ospf6d/ospf6d.c 26 Jun 2020 19:06:52 -0000 1.47
+++ ospf6d/ospf6d.c 12 Sep 2020 13:40:11 -0000
@@ -274,7 +274,8 @@ main(int argc, char *argv[])
  fatalx("control socket setup failed");
  main_imsg_compose_ospfe_fd(IMSG_CONTROLFD, 0, control_fd);
 
- if (unveil(ospfd_conf->csock, "c") == -1)
+ /* no filesystem visibility */
+ if (unveil("/", "") == -1)
  fatal("unveil");
  if (unveil(NULL, NULL) == -1)
  fatal("unveil");
@@ -303,7 +304,7 @@ ospfd_shutdown(void)
  msgbuf_clear(&iev_rde->ibuf.w);
  close(iev_rde->ibuf.fd);
 
- control_cleanup(ospfd_conf->csock);
+ control_cleanup();
  kr_shutdown();
  carp_demote_shutdown();