Make char* parameters const
authorDerrell Lipman <derrell.lipman@unwireduniverse.com>
Tue, 24 Feb 2009 14:49:21 +0000 (09:49 -0500)
committerDerrell Lipman <derrell.lipman@unwireduniverse.com>
Tue, 24 Feb 2009 14:49:21 +0000 (09:49 -0500)
- Use const in function signatures whenever appropriate, to help prevent
  errant scribbling on users' buffers. smbc_set_credentials() always acted as
  if its formal parameters were const char *, and changing the formal
  declaration to specify that should not cause any change to the ABI. It is
  still allowable to pass a writable buffer to a function which specifies that
  it will not write to the buffer.

Derrell

source/include/libsmbclient.h
source/libsmb/libsmb_context.c

index 8c642b1794cd6354a86016c8be1300253c2c9bfa..869aeb6a032336512c101f528e61f07041cc95c5 100644 (file)
@@ -2677,11 +2677,11 @@ smbc_version(void);
  */
 
 void
-smbc_set_credentials(char *workgroup,
-                     char *user,
-                     char *password,
+smbc_set_credentials(const char *workgroup,
+                     const char *user,
+                     const char *password,
                      smbc_bool use_kerberos,
-                     char *signing_state);
+                     const char *signing_state);
 
 /*
  * Wrapper around smbc_set_credentials.
index 90f18ac537090031ef982ca55be911752da08a88..ec163114126556a24f7be26c4f35909c7c648be4 100644 (file)
@@ -630,11 +630,11 @@ smbc_version(void)
  * Set the credentials so DFS will work when following referrals.
  */
 void
-smbc_set_credentials(char *workgroup,
-                     char *user,
-                     char *password,
+smbc_set_credentials(const char *workgroup,
+                     const char *user,
+                     const char *password,
                      smbc_bool use_kerberos,
-                     char *signing_state)
+                     const char *signing_state)
 {
         
         set_cmdline_auth_info_username(user);
@@ -675,18 +675,8 @@ void smbc_set_credentials_with_fallback(SMBCCTX *context,
                signing_state = "force";
        }
 
-       /* Using CONST_DISCARD here is ugly, but
-        * we know that smbc_set_credentials() doesn't
-        * actually modify the strings, and should have
-        * been const from the start. We're constrained
-        * by the ABI here.
-        */
-
-       smbc_set_credentials(CONST_DISCARD(char *,workgroup),
-                            CONST_DISCARD(char *,user),
-                            CONST_DISCARD(char *,password),
-                            use_kerberos,
-                            CONST_DISCARD(char *,signing_state));
+       smbc_set_credentials(workgroup, user, password,
+                             use_kerberos, signing_state);
 
        if (smbc_getOptionFallbackAfterKerberos(context)) {
                cli_cm_set_fallback_after_kerberos();