mirror of
https://git.openafs.org/openafs.git
synced 2025-01-18 23:10:58 +00:00
afs_fetchstore: avoid use of uninitialized variable
rxfs_fetchInit() attempts to do a 64-bit RPC first, but falls back to the 32-bit StartRXAFS_FetchData() if the server appears to not support the 64-bit RPCs. We correctly did not read a length from the call if the FetchData RPC(s) failed, but proceeded to assign from the 'length' local variable into the 'alength' output variable unconditionally later on. Instead of blindly continuing on, jump to the error-handling part of the routine when we cannot read a length from the call. This has the side effect of skipping an afs_Trace3() point in the error case. Change-Id: I4840d5c692c61630c68e97b5e88f9460abade19e Reviewed-on: http://gerrit.openafs.org/10694 Reviewed-by: Derrick Brashear <shadow@your-file-system.com> Tested-by: Benjamin Kaduk <kaduk@mit.edu>
This commit is contained in:
parent
5b8133dedd
commit
baf6af8a8f
@ -974,7 +974,9 @@ rxfs_fetchInit(struct afs_conn *tc, struct rx_connection *rxconn,
|
||||
afs_serverSetNo64Bit(tc);
|
||||
v->hasNo64bit = 1;
|
||||
}
|
||||
if (!code) {
|
||||
if (code) {
|
||||
goto err;
|
||||
} else {
|
||||
RX_AFS_GUNLOCK();
|
||||
bytes = rx_Read(v->call, (char *)&length, sizeof(afs_int32));
|
||||
RX_AFS_GLOCK();
|
||||
@ -1032,6 +1034,7 @@ rxfs_fetchInit(struct afs_conn *tc, struct rx_connection *rxconn,
|
||||
code = EIO;
|
||||
}
|
||||
|
||||
err:
|
||||
if (!code && code1)
|
||||
code = code1;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user