X-Git-Url: https://www.tinc-vpn.org/git/browse?p=tinc;a=blobdiff_plain;f=lib%2Fpidfile.c;h=6e24d5f026b7db98a1196a7e26696d5242cd890a;hp=830d3f358d6a08c65404f193b89e1e9a6066b879;hb=6d08eb1614b59d5f86a43edda9db06fca72b76cd;hpb=ab6f76f6a9fc8028fff96322a52b770710ffa1a9 diff --git a/lib/pidfile.c b/lib/pidfile.c index 830d3f35..6e24d5f0 100644 --- a/lib/pidfile.c +++ b/lib/pidfile.c @@ -14,9 +14,9 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ /* left unaltered for tinc -- Ivo Timmermans */ @@ -27,6 +27,8 @@ #include "system.h" +#include "pidfile.h" + #ifndef HAVE_MINGW /* read_pid * @@ -34,14 +36,15 @@ * 0 is returned if either there's no pidfile, it's empty * or no pid can be read. */ -pid_t read_pid (char *pidfile) +pid_t read_pid (const char *pidfile) { FILE *f; long pid; if (!(f=fopen(pidfile,"r"))) return 0; - fscanf(f,"%ld", &pid); + if(fscanf(f,"%20ld", &pid) != 1) + pid = 0; fclose(f); return pid; } @@ -52,7 +55,7 @@ pid_t read_pid (char *pidfile) * table (using /proc) to determine if the process already exists. If * so the pid is returned, otherwise 0. */ -pid_t check_pid (char *pidfile) +pid_t check_pid (const char *pidfile) { pid_t pid = read_pid(pidfile); @@ -78,7 +81,7 @@ pid_t check_pid (char *pidfile) * Writes the pid to the specified file. If that fails 0 is * returned, otherwise the pid. */ -pid_t write_pid (char *pidfile) +pid_t write_pid (const char *pidfile) { FILE *f; int fd; @@ -123,7 +126,7 @@ pid_t write_pid (char *pidfile) * Remove the the specified file. The result from unlink(2) * is returned */ -int remove_pid (char *pidfile) +int remove_pid (const char *pidfile) { return unlink (pidfile); }