rpc.cmsd: use TIRPC on Linux
[oweals/cde.git] / cde / programs / dtlogin / policy.c
index 5fc456bc7b089fec5fb462916caa75e8883333c8..1b61b0d75bf1f3c333ee33925d0fd4d3d52bb3c6 100644 (file)
@@ -16,7 +16,7 @@
  * details.
  *
  * You should have received a copy of the GNU Lesser General Public
- * License along with these librararies and programs; if not, write
+ * License along with these libraries and programs; if not, write
  * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
  * Floor, Boston, MA 02110-1301 USA
  */
@@ -164,14 +164,16 @@ Willing(
 #endif
     ret = AcceptableDisplayAddress (addr, connectionType, type);
     if (!ret)
-       sprintf (statusBuf, "Display not authorized to connect");
+       snprintf (statusBuf, sizeof(statusBuf), "Display not authorized to connect");
     else
-       sprintf (statusBuf, "%s", WillingMsg());
+       snprintf (statusBuf, sizeof(statusBuf), "%s", WillingMsg());
 #if 0
-       sprintf (statusBuf, "host %s", localHostname());
+       snprintf (statusBuf, sizeof(statusBuf), "host %s", localHostname());
 #endif
+    /* enforce termination */
+    statusBuf[255] = '\0';
 
-    status->length = strlen (statusBuf);
+    status->length = strlen(statusBuf);
     status->data = (CARD8Ptr) malloc (status->length);
     if (!status->data)
        status->length = 0;
@@ -262,7 +264,9 @@ WillingMsg( void )
 
        strcat(tmpbuf,tmpfilename);
 
-       system(tmpbuf);
+       if(-1 == system(tmpbuf)) {
+            perror(strerror(errno));
+        }
 
        if ((f = fopen(tmpfilename,"r")) != (FILE *) NULL) {
            fgets(tmpbuf,LINEBUFSIZE,f);