summaryrefslogtreecommitdiff
path: root/lib/af_alg.c
diff options
context:
space:
mode:
authorPaul Eggert <eggert@cs.ucla.edu>2018-05-09 10:38:17 -0700
committerPaul Eggert <eggert@cs.ucla.edu>2018-05-09 10:39:03 -0700
commit0d896776d80db1f1b5ad5b12fc2d02a7efb32329 (patch)
tree10ef0a04a24c860784b1c0a5806a30b27779d959 /lib/af_alg.c
parent0d10473be6fb40c42c0d10c3417a818b0ebfcce1 (diff)
downloadgnulib-0d896776d80db1f1b5ad5b12fc2d02a7efb32329.tar.gz
af_alg: Pacify --enable-gcc-warnings on GCC 8
* lib/af_alg.c (afalg_buffer, afalg_stream): Reorder local decls and checking to pacify gcc -Wjump-misses-init on GCC 8.
Diffstat (limited to 'lib/af_alg.c')
-rw-r--r--lib/af_alg.c40
1 files changed, 17 insertions, 23 deletions
diff --git a/lib/af_alg.c b/lib/af_alg.c
index c9809c70e9..81f506e7a1 100644
--- a/lib/af_alg.c
+++ b/lib/af_alg.c
@@ -40,15 +40,13 @@ int
afalg_buffer (const char *buffer, size_t len, const char *alg,
void *resblock, ssize_t hashlen)
{
+ int ofd;
+
/* On Linux < 4.9, the value for an empty stream is wrong (all zeroes).
See <https://patchwork.kernel.org/patch/9308641/>. */
if (len == 0)
return -EAFNOSUPPORT;
- int cfd = socket (AF_ALG, SOCK_SEQPACKET, 0);
- if (cfd < 0)
- return -EAFNOSUPPORT;
-
int result;
struct sockaddr_alg salg = {
.salg_family = AF_ALG,
@@ -57,19 +55,19 @@ afalg_buffer (const char *buffer, size_t len, const char *alg,
/* Avoid calling both strcpy and strlen. */
for (int i = 0; (salg.salg_name[i] = alg[i]); i++)
if (i == sizeof salg.salg_name - 1)
- {
- result = -EINVAL;
- goto out_cfd;
- }
+ return -EINVAL;
+
+ int cfd = socket (AF_ALG, SOCK_SEQPACKET, 0);
+ if (cfd < 0)
+ return -EAFNOSUPPORT;
- int ret = bind (cfd, (struct sockaddr *) &salg, sizeof salg);
- if (ret != 0)
+ if (bind (cfd, (struct sockaddr *) &salg, sizeof salg) != 0)
{
result = -EAFNOSUPPORT;
goto out_cfd;
}
- int ofd = accept (cfd, NULL, 0);
+ ofd = accept (cfd, NULL, 0);
if (ofd < 0)
{
result = -EAFNOSUPPORT;
@@ -105,11 +103,7 @@ int
afalg_stream (FILE *stream, const char *alg,
void *resblock, ssize_t hashlen)
{
- int cfd = socket (AF_ALG, SOCK_SEQPACKET, 0);
- if (cfd < 0)
- return -EAFNOSUPPORT;
-
- int fd;
+ int fd, ofd;
struct stat st;
int result;
@@ -120,19 +114,19 @@ afalg_stream (FILE *stream, const char *alg,
/* Avoid calling both strcpy and strlen. */
for (int i = 0; (salg.salg_name[i] = alg[i]); i++)
if (i == sizeof salg.salg_name - 1)
- {
- result = -EINVAL;
- goto out_cfd;
- }
+ return -EINVAL;
+
+ int cfd = socket (AF_ALG, SOCK_SEQPACKET, 0);
+ if (cfd < 0)
+ return -EAFNOSUPPORT;
- int ret = bind (cfd, (struct sockaddr *) &salg, sizeof salg);
- if (ret != 0)
+ if (bind (cfd, (struct sockaddr *) &salg, sizeof salg) != 0)
{
result = -EAFNOSUPPORT;
goto out_cfd;
}
- int ofd = accept (cfd, NULL, 0);
+ ofd = accept (cfd, NULL, 0);
if (ofd < 0)
{
result = -EAFNOSUPPORT;