]> granicus.if.org Git - postgresql/blobdiff - src/port/kill.c
Centralize single quote escaping in src/port/quotes.c
[postgresql] / src / port / kill.c
index 12d5dec456a009906cc5efa1764b26247823c766..0a810cd22528ab2680d14173069f0adb1820e6a1 100644 (file)
@@ -3,13 +3,13 @@
  * kill.c
  *       kill()
  *
- * Copyright (c) 1996-2007, PostgreSQL Global Development Group
+ * Copyright (c) 1996-2013, PostgreSQL Global Development Group
  *
  *     This is a replacement version of kill for Win32 which sends
  *     signals that the backend can recognize.
  *
  * IDENTIFICATION
- *       $PostgreSQL: pgsql/src/port/kill.c,v 1.8 2007/01/05 22:20:02 momjian Exp $
+ *       src/port/kill.c
  *
  *-------------------------------------------------------------------------
  */
@@ -38,24 +38,25 @@ pgkill(int pid, int sig)
                errno = EINVAL;
                return -1;
        }
-       wsprintf(pipename, "\\\\.\\pipe\\pgsignal_%i", pid);
-       if (!CallNamedPipe(pipename, &sigData, 1, &sigRet, 1, &bytes, 1000))
+       snprintf(pipename, sizeof(pipename), "\\\\.\\pipe\\pgsignal_%u", pid);
+
+       if (CallNamedPipe(pipename, &sigData, 1, &sigRet, 1, &bytes, 1000))
        {
-               if (GetLastError() == ERROR_FILE_NOT_FOUND)
+               if (bytes != 1 || sigRet != sig)
+               {
                        errno = ESRCH;
-               else if (GetLastError() == ERROR_ACCESS_DENIED)
-                       errno = EPERM;
-               else
-                       errno = EINVAL;
-               return -1;
-       }
-       if (bytes != 1 || sigRet != sig)
-       {
-               errno = ESRCH;
-               return -1;
+                       return -1;
+               }
+               return 0;
        }
 
-       return 0;
+       if (GetLastError() == ERROR_FILE_NOT_FOUND)
+               errno = ESRCH;
+       else if (GetLastError() == ERROR_ACCESS_DENIED)
+               errno = EPERM;
+       else
+               errno = EINVAL;
+       return -1;
 }
 
 #endif