]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
Fix more asprintf and "ignoring return code" warnings from gcc 4.3.
authorJeremy Allison <jra@samba.org>
Thu, 1 Jan 2009 00:16:52 +0000 (16:16 -0800)
committerKarolin Seeger <kseeger@samba.org>
Fri, 2 Jan 2009 11:44:29 +0000 (12:44 +0100)
Jeremy.
(cherry picked from commit cfee202547a536a54284a14732df2e48eef99952)

source/client/client.c
source/libsmb/passchange.c
source/script/mkbuildoptions.awk
source/winbindd/winbindd_ads.c
source/winbindd/winbindd_cache.c

index d05a82a2637188fdbcb0c21bb3ffbce172eb16f6..5e3b1a9ea6af73043a1c47c3e597f091f75012fc 100644 (file)
@@ -364,7 +364,7 @@ static int do_cd(const char *new_dir)
 
        /* Ensure cur_dir ends in a DIRSEP */
        if ((new_cd[0] != '\0') && (*(new_cd+strlen(new_cd)-1) != CLI_DIRSEP_CHAR)) {
-               new_cd = talloc_asprintf_append(new_cd, CLI_DIRSEP_STR);
+               new_cd = talloc_asprintf_append(new_cd, "%s", CLI_DIRSEP_STR);
                if (!new_cd) {
                        goto out;
                }
@@ -871,7 +871,7 @@ static int cmd_dir(void)
                if (*buf == CLI_DIRSEP_CHAR) {
                        mask = talloc_strdup(ctx, buf);
                } else {
-                       mask = talloc_asprintf_append(mask, buf);
+                       mask = talloc_asprintf_append(mask, "%s", buf);
                }
        } else {
                mask = talloc_asprintf_append(mask, "*");
@@ -912,7 +912,7 @@ static int cmd_du(void)
                return 1;
        }
        if ((mask[0] != '\0') && (mask[strlen(mask)-1]!=CLI_DIRSEP_CHAR)) {
-               mask = talloc_asprintf_append(mask, CLI_DIRSEP_STR);
+               mask = talloc_asprintf_append(mask, "%s", CLI_DIRSEP_STR);
                if (!mask) {
                        return 1;
                }
@@ -923,7 +923,7 @@ static int cmd_du(void)
                if (*buf == CLI_DIRSEP_CHAR) {
                        mask = talloc_strdup(ctx, buf);
                } else {
-                       mask = talloc_asprintf_append(mask, buf);
+                       mask = talloc_asprintf_append(mask, "%s", buf);
                }
        } else {
                mask = talloc_strdup(ctx, "*");
@@ -1107,7 +1107,7 @@ static int cmd_get(void)
                d_printf("get <filename> [localname]\n");
                return 1;
        }
-       rname = talloc_asprintf_append(rname, fname);
+       rname = talloc_asprintf_append(rname, "%s", fname);
        if (!rname) {
                return 1;
        }
@@ -1223,7 +1223,10 @@ static void do_mget(file_info *finfo, const char *dir)
        }
 
        do_list(mget_mask, aSYSTEM | aHIDDEN | aDIR,do_mget,false, true);
-       chdir("..");
+       if (chdir("..") == -1) {
+               d_printf("do_mget: failed to chdir to .. (error %s)\n",
+                       strerror(errno) );
+       }
        client_set_cur_dir(saved_curdir);
        TALLOC_FREE(mget_mask);
        TALLOC_FREE(saved_curdir);
@@ -1266,7 +1269,7 @@ static int cmd_more(void)
                unlink(lname);
                return 1;
        }
-       rname = talloc_asprintf_append(rname, fname);
+       rname = talloc_asprintf_append(rname, "%s", fname);
        if (!rname) {
                return 1;
        }
@@ -1286,7 +1289,10 @@ static int cmd_more(void)
        if (!pager_cmd) {
                return 1;
        }
-       system(pager_cmd);
+       if (system(pager_cmd) == -1) {
+               d_printf("system command '%s' returned -1\n",
+                       pager_cmd);
+       }
        unlink(lname);
 
        return rc;
@@ -1318,7 +1324,7 @@ static int cmd_mget(void)
                        mget_mask = talloc_strdup(ctx, buf);
                } else {
                        mget_mask = talloc_asprintf_append(mget_mask,
-                                                       buf);
+                                                       "%s", buf);
                }
                if (!mget_mask) {
                        return 1;
@@ -1414,7 +1420,7 @@ static int cmd_mkdir(void)
                }
                return 1;
        }
-       mask = talloc_asprintf_append(mask, buf);
+       mask = talloc_asprintf_append(mask, "%s", buf);
        if (!mask) {
                return 1;
        }
@@ -1443,14 +1449,14 @@ static int cmd_mkdir(void)
                trim_char(ddir,'.','\0');
                p = strtok_r(ddir, "/\\", &saveptr);
                while (p) {
-                       ddir2 = talloc_asprintf_append(ddir2, p);
+                       ddir2 = talloc_asprintf_append(ddir2, "%s", p);
                        if (!ddir2) {
                                return 1;
                        }
                        if (!cli_chkpath(targetcli, ddir2)) {
                                do_mkdir(ddir2);
                        }
-                       ddir2 = talloc_asprintf_append(ddir2, CLI_DIRSEP_STR);
+                       ddir2 = talloc_asprintf_append(ddir2, "%s", CLI_DIRSEP_STR);
                        if (!ddir2) {
                                return 1;
                        }
@@ -1482,7 +1488,7 @@ static int cmd_altname(void)
                d_printf("altname <file>\n");
                return 1;
        }
-       name = talloc_asprintf_append(name, buf);
+       name = talloc_asprintf_append(name, "%s", buf);
        if (!name) {
                return 1;
        }
@@ -1566,7 +1572,7 @@ static int cmd_allinfo(void)
                d_printf("allinfo <file>\n");
                return 1;
        }
-       name = talloc_asprintf_append(name, buf);
+       name = talloc_asprintf_append(name, "%s", buf);
        if (!name) {
                return 1;
        }
@@ -1733,9 +1739,9 @@ static int cmd_put(void)
        }
 
        if (next_token_talloc(ctx, &cmd_ptr,&buf,NULL)) {
-               rname = talloc_asprintf_append(rname, buf);
+               rname = talloc_asprintf_append(rname, "%s", buf);
        } else {
-               rname = talloc_asprintf_append(rname, lname);
+               rname = talloc_asprintf_append(rname, "%s", lname);
        }
        if (!rname) {
                return 1;
@@ -2132,7 +2138,7 @@ static int cmd_del(void)
                d_printf("del <filename>\n");
                return 1;
        }
-       mask = talloc_asprintf_append(mask, buf);
+       mask = talloc_asprintf_append(mask, "%s", buf);
        if (!mask) {
                return 1;
        }
@@ -3493,7 +3499,10 @@ static int cmd_lcd(void)
        char *d;
 
        if (next_token_talloc(ctx, &cmd_ptr,&buf,NULL)) {
-               chdir(buf);
+               if (chdir(buf) == -1) {
+                       d_printf("chdir to %s failed (%s)\n",
+                               buf, strerror(errno));
+               }
        }
        d = TALLOC_ARRAY(ctx, char, PATH_MAX+1);
        if (!d) {
@@ -3524,7 +3533,7 @@ static int cmd_reget(void)
                d_printf("reget <filename>\n");
                return 1;
        }
-       remote_name = talloc_asprintf_append(remote_name, fname);
+       remote_name = talloc_asprintf_append(remote_name, "%s", fname);
        if (!remote_name) {
                return 1;
        }
@@ -3571,10 +3580,10 @@ static int cmd_reput(void)
 
        if (next_token_talloc(ctx, &cmd_ptr, &buf, NULL)) {
                remote_name = talloc_asprintf_append(remote_name,
-                                               buf);
+                                               "%s", buf);
        } else {
                remote_name = talloc_asprintf_append(remote_name,
-                                               local_name);
+                                               "%s", local_name);
        }
        if (!remote_name) {
                return 1;
@@ -4108,13 +4117,13 @@ static void completion_remote_filter(const char *mnt,
                                TALLOC_FREE(ctx);
                                return;
                        }
-                       tmp = talloc_asprintf_append(tmp, f->name);
+                       tmp = talloc_asprintf_append(tmp, "%s", f->name);
                        if (!tmp) {
                                TALLOC_FREE(ctx);
                                return;
                        }
                        if (f->mode & aDIR) {
-                               tmp = talloc_asprintf_append(tmp, CLI_DIRSEP_STR);
+                               tmp = talloc_asprintf_append(tmp, "%s", CLI_DIRSEP_STR);
                        }
                        if (!tmp) {
                                TALLOC_FREE(ctx);
@@ -4459,7 +4468,10 @@ static int process_stdin(void)
 
                /* special case - first char is ! */
                if (*line == '!') {
-                       system(line + 1);
+                       if (system(line + 1) == -1) {
+                               d_printf("system() command %s failed.\n",
+                                       line+1);
+                       }
                        SAFE_FREE(line);
                        TALLOC_FREE(frame);
                        continue;
index c8a44069492379f9abf823859d8960623260b26c..c7140a90482ce40d2f865305b46ccad457fa9c4e 100644 (file)
@@ -38,8 +38,10 @@ NTSTATUS remote_password_change(const char *remote_machine, const char *user_nam
        *err_str = NULL;
 
        if(!resolve_name( remote_machine, &ss, 0x20)) {
-               asprintf(err_str, "Unable to find an IP address for machine "
-                        "%s.\n", remote_machine);
+               if (asprintf(err_str, "Unable to find an IP address for machine "
+                        "%s.\n", remote_machine) == -1) {
+                       *err_str = NULL;
+               }
                return NT_STATUS_UNSUCCESSFUL;
        }
  
@@ -50,9 +52,11 @@ NTSTATUS remote_password_change(const char *remote_machine, const char *user_nam
 
        result = cli_connect(cli, remote_machine, &ss);
        if (!NT_STATUS_IS_OK(result)) {
-               asprintf(err_str, "Unable to connect to SMB server on "
+               if (asprintf(err_str, "Unable to connect to SMB server on "
                         "machine %s. Error was : %s.\n",
-                        remote_machine, nt_errstr(result));
+                        remote_machine, nt_errstr(result))==-1) {
+                       *err_str = NULL;
+               }
                cli_shutdown(cli);
                return result;
        }
@@ -61,9 +65,11 @@ NTSTATUS remote_password_change(const char *remote_machine, const char *user_nam
        make_nmb_name(&called , remote_machine, 0x20);
        
        if (!cli_session_request(cli, &calling, &called)) {
-               asprintf(err_str, "machine %s rejected the session setup. "
+               if (asprintf(err_str, "machine %s rejected the session setup. "
                         "Error was : %s.\n",
-                        remote_machine, cli_errstr(cli) );
+                        remote_machine, cli_errstr(cli)) == -1) {
+                       *err_str = NULL;
+               }
                result = cli_nt_error(cli);
                cli_shutdown(cli);
                return result;
@@ -72,9 +78,11 @@ NTSTATUS remote_password_change(const char *remote_machine, const char *user_nam
        cli->protocol = PROTOCOL_NT1;
 
        if (!cli_negprot(cli)) {
-               asprintf(err_str, "machine %s rejected the negotiate "
+               if (asprintf(err_str, "machine %s rejected the negotiate "
                         "protocol. Error was : %s.\n",        
-                        remote_machine, cli_errstr(cli) );
+                        remote_machine, cli_errstr(cli)) == -1) {
+                       *err_str = NULL;
+               }
                result = cli_nt_error(cli);
                cli_shutdown(cli);
                return result;
@@ -95,8 +103,10 @@ NTSTATUS remote_password_change(const char *remote_machine, const char *user_nam
 
                if (!NT_STATUS_EQUAL(result, NT_STATUS_PASSWORD_MUST_CHANGE) &&
                    !NT_STATUS_EQUAL(result, NT_STATUS_PASSWORD_EXPIRED)) {
-                       asprintf(err_str, "Could not connect to machine %s: "
-                                "%s\n", remote_machine, cli_errstr(cli));
+                       if (asprintf(err_str, "Could not connect to machine %s: "
+                                "%s\n", remote_machine, cli_errstr(cli)) == -1) {
+                               *err_str = NULL;
+                       }
                        cli_shutdown(cli);
                        return result;
                }
@@ -112,9 +122,11 @@ NTSTATUS remote_password_change(const char *remote_machine, const char *user_nam
                result = cli_session_setup(cli, "", "", 0, "", 0, "");
 
                if (!NT_STATUS_IS_OK(result)) {
-                       asprintf(err_str, "machine %s rejected the session "
+                       if (asprintf(err_str, "machine %s rejected the session "
                                 "setup. Error was : %s.\n",        
-                                remote_machine, cli_errstr(cli) );
+                                remote_machine, cli_errstr(cli)) == -1) {
+                               *err_str = NULL;
+                       }
                        cli_shutdown(cli);
                        return result;
                }
@@ -125,9 +137,11 @@ NTSTATUS remote_password_change(const char *remote_machine, const char *user_nam
        }
 
        if (!cli_send_tconX(cli, "IPC$", "IPC", "", 1)) {
-               asprintf(err_str, "machine %s rejected the tconX on the IPC$ "
+               if (asprintf(err_str, "machine %s rejected the tconX on the IPC$ "
                         "share. Error was : %s.\n",
-                        remote_machine, cli_errstr(cli) );
+                        remote_machine, cli_errstr(cli)) == -1) {
+                       *err_str = NULL;
+               }
                result = cli_nt_error(cli);
                cli_shutdown(cli);
                return result;
@@ -160,18 +174,22 @@ NTSTATUS remote_password_change(const char *remote_machine, const char *user_nam
                if (lp_client_lanman_auth()) {
                        /* Use the old RAP method. */
                        if (!cli_oem_change_password(cli, user_name, new_passwd, old_passwd)) {
-                               asprintf(err_str, "machine %s rejected the "
+                               if (asprintf(err_str, "machine %s rejected the "
                                         "password change: Error was : %s.\n",
-                                        remote_machine, cli_errstr(cli) );
+                                        remote_machine, cli_errstr(cli)) == -1) {
+                                       *err_str = NULL;
+                               }
                                result = cli_nt_error(cli);
                                cli_shutdown(cli);
                                return result;
                        }
                } else {
-                       asprintf(err_str, "SAMR connection to machine %s "
+                       if (asprintf(err_str, "SAMR connection to machine %s "
                                 "failed. Error was %s, but LANMAN password "
                                 "changed are disabled\n",
-                                nt_errstr(result), remote_machine);
+                                nt_errstr(result), remote_machine) == -1) {
+                               *err_str = NULL;
+                       }
                        result = cli_nt_error(cli);
                        cli_shutdown(cli);
                        return result;
@@ -189,9 +207,11 @@ NTSTATUS remote_password_change(const char *remote_machine, const char *user_nam
                     || NT_STATUS_EQUAL(result, NT_STATUS_UNSUCCESSFUL))) {
                /* it failed, but for reasons such as wrong password, too short etc ... */
                
-               asprintf(err_str, "machine %s rejected the password change: "
+               if (asprintf(err_str, "machine %s rejected the password change: "
                         "Error was : %s.\n",
-                        remote_machine, get_friendly_nt_error_msg(result));
+                        remote_machine, get_friendly_nt_error_msg(result)) == -1) {
+                       *err_str = NULL;
+               }
                cli_shutdown(cli);
                return result;
        }
@@ -220,10 +240,12 @@ NTSTATUS remote_password_change(const char *remote_machine, const char *user_nam
                      || NT_STATUS_EQUAL(result, NT_STATUS_UNSUCCESSFUL))) {
                        /* it failed, but again it was due to things like new password too short */
 
-                       asprintf(err_str, "machine %s rejected the "
+                       if (asprintf(err_str, "machine %s rejected the "
                                 "(anonymous) password change: Error was : "
                                 "%s.\n", remote_machine,
-                                get_friendly_nt_error_msg(result));
+                                get_friendly_nt_error_msg(result)) == -1) {
+                               *err_str = NULL;
+                       }
                        cli_shutdown(cli);
                        return result;
                }
@@ -239,17 +261,21 @@ NTSTATUS remote_password_change(const char *remote_machine, const char *user_nam
                                cli_shutdown(cli);
                                return NT_STATUS_OK;
                        }
-                       asprintf(err_str, "machine %s rejected the password "
+                       if (asprintf(err_str, "machine %s rejected the password "
                                 "change: Error was : %s.\n",
-                                remote_machine, cli_errstr(cli) );
+                                remote_machine, cli_errstr(cli)) == -1) {
+                               *err_str = NULL;
+                       }
                        result = cli_nt_error(cli);
                        cli_shutdown(cli);
                        return result;
                } else {
-                       asprintf(err_str, "SAMR connection to machine %s "
+                       if (asprintf(err_str, "SAMR connection to machine %s "
                                 "failed. Error was %s, but LANMAN password "
                                 "changed are disabled\n",
-                               nt_errstr(result), remote_machine);
+                               nt_errstr(result), remote_machine) == -1) {
+                               *err_str = NULL;
+                       }
                        cli_shutdown(cli);
                        return NT_STATUS_UNSUCCESSFUL;
                }
index 02562cf7b2e85c56b5981919a4190b0bcbb7e9ae..a1e5d8506198e60c98709e3945175d219ead28a7 100644 (file)
@@ -23,29 +23,31 @@ BEGIN {
        print "#include \"build_env.h\"";
        print "#include \"dynconfig.h\"";
        print "";
-       print "static void output(bool screen, const char *format, ...) PRINTF_ATTRIBUTE(2,3);";
+       print "static int output(bool screen, const char *format, ...) PRINTF_ATTRIBUTE(2,3);";
        print "void build_options(bool screen);";
        print "";
        print "";
        print "/****************************************************************************";
        print "helper function for build_options";
        print "****************************************************************************/";
-       print "static void output(bool screen, const char *format, ...)";
+       print "static int output(bool screen, const char *format, ...)";
        print "{";
-       print "       char *ptr;";
+       print "       char *ptr = NULL;";
+       print "       int ret = 0;";
        print "       va_list ap;";
        print "       ";
        print "       va_start(ap, format);";
-       print "       vasprintf(&ptr,format,ap);";
+       print "       ret = vasprintf(&ptr,format,ap);";
        print "       va_end(ap);";
        print "";
        print "       if (screen) {";
-       print "              d_printf(\"%s\", ptr);";
+       print "              d_printf(\"%s\", ptr ? ptr : \"\");";
        print "       } else {";
-       print "        DEBUG(4,(\"%s\", ptr));";
+       print "        DEBUG(4,(\"%s\", ptr ? ptr : \"\"));";
        print "       }";
        print "       ";
        print "       SAFE_FREE(ptr);";
+       print "       return ret;";
        print "}";
        print "";
        print "/****************************************************************************";
index 5c7d49184972f68fcee344c71bd0c8d7f45208d2..a508682e5ebc9d189b9197116f6975e2dfd64ab2 100644 (file)
@@ -525,7 +525,10 @@ static NTSTATUS query_user(struct winbindd_domain *domain,
        }
 
        sidstr = sid_binstring(sid);
-       asprintf(&ldap_exp, "(objectSid=%s)", sidstr);
+       if (asprintf(&ldap_exp, "(objectSid=%s)", sidstr) == -1) {
+               status = NT_STATUS_NO_MEMORY;
+               goto done;
+       }
        rc = ads_search_retry(ads, &msg, ldap_exp, attrs);
        free(ldap_exp);
        free(sidstr);
index 2f4a6ffe568232a2404a2932eddea5441051866e..1ae7966bc386f282ca5af8645c1f09ca9669232c 100644 (file)
@@ -3852,7 +3852,9 @@ static TDB_DATA make_tdc_key( const char *domain_name )
        }
               
                
-       asprintf( &keystr, "TRUSTDOMCACHE/%s", domain_name );
+       if (asprintf( &keystr, "TRUSTDOMCACHE/%s", domain_name ) == -1) {
+               return key;
+       }
        key = string_term_tdb_data(keystr);
        
        return key;