Skip to content

Commit be676f3

Browse files
jriscsimo5
authored andcommitted
Fix various issues detected by static analysis
Signed-off-by: Julien Rische <[email protected]>
1 parent d7be530 commit be676f3

File tree

6 files changed

+29
-17
lines changed

6 files changed

+29
-17
lines changed

Diff for: src/client/gpm_accept_sec_context.c

+1
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,7 @@ OM_uint32 gpm_accept_sec_context(OM_uint32 *minor_status,
105105
if (outbuf) {
106106
*output_token = *outbuf;
107107
free(outbuf);
108+
outbuf = NULL;
108109
}
109110
if (ret_flags) {
110111
*ret_flags = ctx->ctx_flags;

Diff for: src/gp_creds.c

+1
Original file line numberDiff line numberDiff line change
@@ -800,6 +800,7 @@ uint32_t gp_add_krb5_creds(uint32_t *min,
800800
gss_release_cred(&discard, &user_cred);
801801
gss_release_name(&discard, &target_name);
802802
gss_delete_sec_context(&discard, &initiator_context, NULL);
803+
gss_delete_sec_context(&discard, &acceptor_context, NULL);
803804
gss_release_buffer(&discard, &init_token);
804805
gss_release_buffer(&discard, &accept_token);
805806
gss_release_name(&discard, &req_name);

Diff for: src/gp_rpc_init_sec_context.c

+2
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ int gp_init_sec_context(struct gp_call_ctx *gpcall,
3333
};
3434
uint32_t gccn_before = 0;
3535
uint32_t gccn_after = 0;
36+
uint32_t discard;
3637
int ret;
3738

3839
isca = &arg->init_sec_context;
@@ -192,6 +193,7 @@ int gp_init_sec_context(struct gp_call_ctx *gpcall,
192193

193194
GPRPCDEBUG(gssx_res_init_sec_context, iscr);
194195

196+
gss_delete_sec_context(&discard, &ctx, NULL);
195197
gss_release_name(&ret_min, &target_name);
196198
gss_release_oid(&ret_min, &mech_type);
197199
gss_release_cred(&ret_min, &ich);

Diff for: tests/interposetest.c

+3-2
Original file line numberDiff line numberDiff line change
@@ -377,7 +377,7 @@ void run_server(struct aproc *data)
377377
uint32_t ret_min;
378378
gss_ctx_id_t context_handle = GSS_C_NO_CONTEXT;
379379
gss_cred_id_t cred_handle = GSS_C_NO_CREDENTIAL;
380-
gss_name_t src_name;
380+
gss_name_t src_name = GSS_C_NO_NAME;
381381
gss_buffer_desc out_token = GSS_C_EMPTY_BUFFER;
382382
gss_cred_id_t deleg_cred = GSS_C_NO_CREDENTIAL;
383383
gss_OID_set mech_set = GSS_C_NO_OID_SET;
@@ -591,7 +591,8 @@ void run_server(struct aproc *data)
591591
goto done;
592592
}
593593

594-
fprintf(stdout, "Server, RECV: %s\n", (char *)out_token.value);
594+
fprintf(stdout, "Server, RECV: %*s\n", (int)out_token.length,
595+
(char *)out_token.value);
595596

596597
gss_release_buffer(&ret_min, &out_token);
597598

Diff for: tests/t_accept.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ int main(int argc, const char *argv[])
99
gss_ctx_id_t context_handle = GSS_C_NO_CONTEXT;
1010
gss_buffer_desc in_token = GSS_C_EMPTY_BUFFER;
1111
gss_buffer_desc out_token = GSS_C_EMPTY_BUFFER;
12-
gss_name_t src_name;
12+
gss_name_t src_name = GSS_C_NO_NAME;
1313
uint32_t ret_maj;
1414
uint32_t ret_min;
1515
int ret = -1;

Diff for: tests/userproxytest.c

+21-14
Original file line numberDiff line numberDiff line change
@@ -33,14 +33,19 @@ int mock_activation_sockets(void)
3333
unlink(addr.sun_path);
3434

3535
fd = socket(AF_UNIX, SOCK_STREAM, 0);
36-
if (fd == -1) return -1;
36+
if (fd == -1) {
37+
ret = -1;
38+
goto done;
39+
}
3740

3841
ret = bind(fd, (struct sockaddr *)&addr, sizeof(addr));
39-
if (ret == -1) return -1;
42+
if (ret == -1) goto done;
4043

4144
ret = listen(fd, 1);
42-
if (ret == -1) return -1;
45+
if (ret == -1) goto done;
4346

47+
done:
48+
if (ret == -1) close(fd);
4449
return 0;
4550
}
4651

@@ -75,19 +80,19 @@ int wait_and_check_output(int outfd, int timeout)
7580
useconds_t interval = 100 * 1000; /* 100 msec */
7681
char outbuf[1024];
7782
char *line;
78-
FILE *out;
79-
int ret;
83+
FILE *out = NULL;
84+
int err, ret = -1;
8085

8186
/* make pipe non blocking */
82-
ret = fcntl(outfd, F_SETFL, O_NONBLOCK);
83-
if (ret) return -1;
87+
err = fcntl(outfd, F_SETFL, O_NONBLOCK);
88+
if (err) goto done;
8489

8590
out = fdopen(outfd, "r");
86-
if (!out) return -1;
91+
if (!out) goto done;
8792

8893
while (now < start + timeout) {
89-
ret = usleep(interval);
90-
if (ret) return -1;
94+
err = usleep(interval);
95+
if (err) goto done;
9196

9297
line = fgets(outbuf, 1023, out);
9398
if (line) {
@@ -101,13 +106,15 @@ int wait_and_check_output(int outfd, int timeout)
101106
now = time(NULL);
102107
}
103108

104-
fclose(out);
105-
106109
for (int i = 0; checks[i].match != NULL; i++) {
107-
if (checks[i].matched == false) return -1;
110+
if (checks[i].matched == false) goto done;
108111
}
109112

110-
return 0;
113+
ret = 0;
114+
115+
done:
116+
if (out) fclose(out);
117+
return ret;
111118
}
112119

113120
int child(int outpipe[])

0 commit comments

Comments
 (0)