]> granicus.if.org Git - sudo/commitdiff
conversation function no longer puts a newline at the end of info
authorTodd C. Miller <Todd.Miller@courtesan.com>
Wed, 10 Mar 2010 00:20:01 +0000 (19:20 -0500)
committerTodd C. Miller <Todd.Miller@courtesan.com>
Wed, 10 Mar 2010 00:20:01 +0000 (19:20 -0500)
or error messages.

plugins/sample/sample_plugin.c
src/conversation.c

index 4c17a0061b19c210d469ddc8f35d74f471a57147..c4204102d2fb7ec08a333194ce87c8e2f963aa0d 100644 (file)
@@ -109,8 +109,8 @@ fmt_string(const char *var, const char *val)
 static void
 sudo_log(int type, const char *fmt, ...)
 {
-    struct sudo_conv_message msg;
-    struct sudo_conv_reply repl;
+    struct sudo_conv_message msg[2];
+    struct sudo_conv_reply repl[2];
     va_list ap;
     char *str;
     int rc;
@@ -123,10 +123,12 @@ sudo_log(int type, const char *fmt, ...)
 
     /* Call conversation function */
     memset(&msg, 0, sizeof(msg));
-    msg.msg_type = type;
-    msg.msg = str;
+    msg[0].msg_type = type;
+    msg[0].msg = str;
+    msg[1].msg_type = type;
+    msg[1].msg = "\n";
     memset(&repl, 0, sizeof(repl));
-    sudo_conv(1, &msg, &repl);
+    sudo_conv(2, msg, repl);
 }
 
 /*
index f498cbdb004e250cfffa16580da1888ef2238d6a..93c711de96bfc78c59b11d54b52bb4cb88fd3679 100644 (file)
@@ -78,13 +78,11 @@ sudo_conversation(int num_msgs, const struct sudo_conv_message msgs[],
                break;
            case SUDO_CONV_INFO_MSG:
                if (msg->msg)
-                   (void) puts(msg->msg);
+                   (void) fputs(msg->msg, stdout);
                break;
            case SUDO_CONV_ERROR_MSG:
-               if (msg->msg) {
+               if (msg->msg)
                    (void) fputs(msg->msg, stderr);
-                   (void) fputc('\n', stderr);
-               }
                break;
            default:
                goto err;