diff options
author | miod <> | 2014-05-01 11:11:37 +0000 |
---|---|---|
committer | miod <> | 2014-05-01 11:11:37 +0000 |
commit | 7b03fe01b152af99e43b7fc69af8ce116432c5ec (patch) | |
tree | 742a52c092c1ba5efcb3093ba62e773dd11f39b9 | |
parent | 3cd5f8038dae82ff8e027c0a63eab71ece62b0fe (diff) | |
download | openbsd-7b03fe01b152af99e43b7fc69af8ce116432c5ec.tar.gz openbsd-7b03fe01b152af99e43b7fc69af8ce116432c5ec.tar.bz2 openbsd-7b03fe01b152af99e43b7fc69af8ce116432c5ec.zip |
Remove fips_md_init() macro indirection for digest algorithms, used by the
OpenSSL FIPS module to prevent forbidden digests to be allowed.
No functional change but readability.
ok deraadt@
-rw-r--r-- | src/lib/libcrypto/crypto.h | 6 | ||||
-rw-r--r-- | src/lib/libcrypto/md4/md4_dgst.c | 2 | ||||
-rw-r--r-- | src/lib/libcrypto/md5/md5_dgst.c | 2 | ||||
-rw-r--r-- | src/lib/libcrypto/mdc2/mdc2dgst.c | 2 | ||||
-rw-r--r-- | src/lib/libcrypto/ripemd/rmd_dgst.c | 2 | ||||
-rw-r--r-- | src/lib/libcrypto/sha/sha256.c | 4 | ||||
-rw-r--r-- | src/lib/libcrypto/sha/sha512.c | 4 | ||||
-rw-r--r-- | src/lib/libcrypto/sha/sha_locl.h | 4 | ||||
-rw-r--r-- | src/lib/libcrypto/whrlpool/wp_dgst.c | 2 | ||||
-rw-r--r-- | src/lib/libssl/src/crypto/crypto.h | 6 | ||||
-rw-r--r-- | src/lib/libssl/src/crypto/md4/md4_dgst.c | 2 | ||||
-rw-r--r-- | src/lib/libssl/src/crypto/md5/md5_dgst.c | 2 | ||||
-rw-r--r-- | src/lib/libssl/src/crypto/mdc2/mdc2dgst.c | 2 | ||||
-rw-r--r-- | src/lib/libssl/src/crypto/ripemd/rmd_dgst.c | 2 | ||||
-rw-r--r-- | src/lib/libssl/src/crypto/sha/sha256.c | 4 | ||||
-rw-r--r-- | src/lib/libssl/src/crypto/sha/sha512.c | 4 | ||||
-rw-r--r-- | src/lib/libssl/src/crypto/sha/sha_locl.h | 4 | ||||
-rw-r--r-- | src/lib/libssl/src/crypto/whrlpool/wp_dgst.c | 2 |
18 files changed, 22 insertions, 34 deletions
diff --git a/src/lib/libcrypto/crypto.h b/src/lib/libcrypto/crypto.h index 11c34d8bbe..00d3cc2aae 100644 --- a/src/lib/libcrypto/crypto.h +++ b/src/lib/libcrypto/crypto.h | |||
@@ -533,12 +533,6 @@ int OPENSSL_isservice(void); | |||
533 | 533 | ||
534 | void OPENSSL_init(void); | 534 | void OPENSSL_init(void); |
535 | 535 | ||
536 | #define fips_md_init(alg) fips_md_init_ctx(alg, alg) | ||
537 | |||
538 | #define fips_md_init_ctx(alg, cx) \ | ||
539 | int alg##_Init(cx##_CTX *c) | ||
540 | #define fips_cipher_abort(alg) while(0) | ||
541 | |||
542 | /* CRYPTO_memcmp returns zero iff the |len| bytes at |a| and |b| are equal. It | 536 | /* CRYPTO_memcmp returns zero iff the |len| bytes at |a| and |b| are equal. It |
543 | * takes an amount of time dependent on |len|, but independent of the contents | 537 | * takes an amount of time dependent on |len|, but independent of the contents |
544 | * of |a| and |b|. Unlike memcmp, it cannot be used to put elements into a | 538 | * of |a| and |b|. Unlike memcmp, it cannot be used to put elements into a |
diff --git a/src/lib/libcrypto/md4/md4_dgst.c b/src/lib/libcrypto/md4/md4_dgst.c index b5b165b052..b4edd6405f 100644 --- a/src/lib/libcrypto/md4/md4_dgst.c +++ b/src/lib/libcrypto/md4/md4_dgst.c | |||
@@ -71,7 +71,7 @@ const char MD4_version[]="MD4" OPENSSL_VERSION_PTEXT; | |||
71 | #define INIT_DATA_C (unsigned long)0x98badcfeL | 71 | #define INIT_DATA_C (unsigned long)0x98badcfeL |
72 | #define INIT_DATA_D (unsigned long)0x10325476L | 72 | #define INIT_DATA_D (unsigned long)0x10325476L |
73 | 73 | ||
74 | fips_md_init(MD4) | 74 | int MD4_Init(MD4_CTX *c) |
75 | { | 75 | { |
76 | memset (c,0,sizeof(*c)); | 76 | memset (c,0,sizeof(*c)); |
77 | c->A=INIT_DATA_A; | 77 | c->A=INIT_DATA_A; |
diff --git a/src/lib/libcrypto/md5/md5_dgst.c b/src/lib/libcrypto/md5/md5_dgst.c index 265890de52..dffddf44d9 100644 --- a/src/lib/libcrypto/md5/md5_dgst.c +++ b/src/lib/libcrypto/md5/md5_dgst.c | |||
@@ -71,7 +71,7 @@ const char MD5_version[]="MD5" OPENSSL_VERSION_PTEXT; | |||
71 | #define INIT_DATA_C (unsigned long)0x98badcfeL | 71 | #define INIT_DATA_C (unsigned long)0x98badcfeL |
72 | #define INIT_DATA_D (unsigned long)0x10325476L | 72 | #define INIT_DATA_D (unsigned long)0x10325476L |
73 | 73 | ||
74 | fips_md_init(MD5) | 74 | int MD5_Init(MD5_CTX *c) |
75 | { | 75 | { |
76 | memset (c,0,sizeof(*c)); | 76 | memset (c,0,sizeof(*c)); |
77 | c->A=INIT_DATA_A; | 77 | c->A=INIT_DATA_A; |
diff --git a/src/lib/libcrypto/mdc2/mdc2dgst.c b/src/lib/libcrypto/mdc2/mdc2dgst.c index d66ed6a1c6..302f9ab9a8 100644 --- a/src/lib/libcrypto/mdc2/mdc2dgst.c +++ b/src/lib/libcrypto/mdc2/mdc2dgst.c | |||
@@ -76,7 +76,7 @@ | |||
76 | *((c)++)=(unsigned char)(((l)>>24L)&0xff)) | 76 | *((c)++)=(unsigned char)(((l)>>24L)&0xff)) |
77 | 77 | ||
78 | static void mdc2_body(MDC2_CTX *c, const unsigned char *in, size_t len); | 78 | static void mdc2_body(MDC2_CTX *c, const unsigned char *in, size_t len); |
79 | fips_md_init(MDC2) | 79 | int MDC2_Init(MDC2_CTX *c) |
80 | { | 80 | { |
81 | c->num=0; | 81 | c->num=0; |
82 | c->pad_type=1; | 82 | c->pad_type=1; |
diff --git a/src/lib/libcrypto/ripemd/rmd_dgst.c b/src/lib/libcrypto/ripemd/rmd_dgst.c index d8e72da51b..74dbcd0c75 100644 --- a/src/lib/libcrypto/ripemd/rmd_dgst.c +++ b/src/lib/libcrypto/ripemd/rmd_dgst.c | |||
@@ -70,7 +70,7 @@ const char RMD160_version[]="RIPE-MD160" OPENSSL_VERSION_PTEXT; | |||
70 | void ripemd160_block(RIPEMD160_CTX *c, unsigned long *p,size_t num); | 70 | void ripemd160_block(RIPEMD160_CTX *c, unsigned long *p,size_t num); |
71 | # endif | 71 | # endif |
72 | 72 | ||
73 | fips_md_init(RIPEMD160) | 73 | int RIPEMD160_Init(RIPEMD160_CTX *c) |
74 | { | 74 | { |
75 | memset (c,0,sizeof(*c)); | 75 | memset (c,0,sizeof(*c)); |
76 | c->A=RIPEMD160_A; | 76 | c->A=RIPEMD160_A; |
diff --git a/src/lib/libcrypto/sha/sha256.c b/src/lib/libcrypto/sha/sha256.c index e767afde5a..cf9c9a050b 100644 --- a/src/lib/libcrypto/sha/sha256.c +++ b/src/lib/libcrypto/sha/sha256.c | |||
@@ -17,7 +17,7 @@ | |||
17 | 17 | ||
18 | const char SHA256_version[]="SHA-256" OPENSSL_VERSION_PTEXT; | 18 | const char SHA256_version[]="SHA-256" OPENSSL_VERSION_PTEXT; |
19 | 19 | ||
20 | fips_md_init_ctx(SHA224, SHA256) | 20 | int SHA224_Init(SHA256_CTX *c) |
21 | { | 21 | { |
22 | memset (c,0,sizeof(*c)); | 22 | memset (c,0,sizeof(*c)); |
23 | c->h[0]=0xc1059ed8UL; c->h[1]=0x367cd507UL; | 23 | c->h[0]=0xc1059ed8UL; c->h[1]=0x367cd507UL; |
@@ -28,7 +28,7 @@ fips_md_init_ctx(SHA224, SHA256) | |||
28 | return 1; | 28 | return 1; |
29 | } | 29 | } |
30 | 30 | ||
31 | fips_md_init(SHA256) | 31 | int SHA256_Init(SHA256_CTX *c) |
32 | { | 32 | { |
33 | memset (c,0,sizeof(*c)); | 33 | memset (c,0,sizeof(*c)); |
34 | c->h[0]=0x6a09e667UL; c->h[1]=0xbb67ae85UL; | 34 | c->h[0]=0x6a09e667UL; c->h[1]=0xbb67ae85UL; |
diff --git a/src/lib/libcrypto/sha/sha512.c b/src/lib/libcrypto/sha/sha512.c index ca7991a9ca..d8fa933cde 100644 --- a/src/lib/libcrypto/sha/sha512.c +++ b/src/lib/libcrypto/sha/sha512.c | |||
@@ -60,7 +60,7 @@ const char SHA512_version[]="SHA-512" OPENSSL_VERSION_PTEXT; | |||
60 | #define SHA512_BLOCK_CAN_MANAGE_UNALIGNED_DATA | 60 | #define SHA512_BLOCK_CAN_MANAGE_UNALIGNED_DATA |
61 | #endif | 61 | #endif |
62 | 62 | ||
63 | fips_md_init_ctx(SHA384, SHA512) | 63 | int SHA384_Init(SHA512_CTX *c) |
64 | { | 64 | { |
65 | c->h[0]=U64(0xcbbb9d5dc1059ed8); | 65 | c->h[0]=U64(0xcbbb9d5dc1059ed8); |
66 | c->h[1]=U64(0x629a292a367cd507); | 66 | c->h[1]=U64(0x629a292a367cd507); |
@@ -76,7 +76,7 @@ fips_md_init_ctx(SHA384, SHA512) | |||
76 | return 1; | 76 | return 1; |
77 | } | 77 | } |
78 | 78 | ||
79 | fips_md_init(SHA512) | 79 | int SHA512_Init(SHA512_CTX *c) |
80 | { | 80 | { |
81 | c->h[0]=U64(0x6a09e667f3bcc908); | 81 | c->h[0]=U64(0x6a09e667f3bcc908); |
82 | c->h[1]=U64(0xbb67ae8584caa73b); | 82 | c->h[1]=U64(0xbb67ae8584caa73b); |
diff --git a/src/lib/libcrypto/sha/sha_locl.h b/src/lib/libcrypto/sha/sha_locl.h index 1210176dda..08ab20d60f 100644 --- a/src/lib/libcrypto/sha/sha_locl.h +++ b/src/lib/libcrypto/sha/sha_locl.h | |||
@@ -116,9 +116,9 @@ void sha1_block_data_order (SHA_CTX *c, const void *p,size_t num); | |||
116 | #define INIT_DATA_h4 0xc3d2e1f0UL | 116 | #define INIT_DATA_h4 0xc3d2e1f0UL |
117 | 117 | ||
118 | #ifdef SHA_0 | 118 | #ifdef SHA_0 |
119 | fips_md_init(SHA) | 119 | int SHA_Init(SHA_CTX *c) |
120 | #else | 120 | #else |
121 | fips_md_init_ctx(SHA1, SHA) | 121 | int SHA1_Init(SHA_CTX *c) |
122 | #endif | 122 | #endif |
123 | { | 123 | { |
124 | memset (c,0,sizeof(*c)); | 124 | memset (c,0,sizeof(*c)); |
diff --git a/src/lib/libcrypto/whrlpool/wp_dgst.c b/src/lib/libcrypto/whrlpool/wp_dgst.c index 7e28bef51d..143a70f8bc 100644 --- a/src/lib/libcrypto/whrlpool/wp_dgst.c +++ b/src/lib/libcrypto/whrlpool/wp_dgst.c | |||
@@ -55,7 +55,7 @@ | |||
55 | #include <openssl/crypto.h> | 55 | #include <openssl/crypto.h> |
56 | #include <string.h> | 56 | #include <string.h> |
57 | 57 | ||
58 | fips_md_init(WHIRLPOOL) | 58 | int WHIRLPOOL_Init(WHIRLPOOL_CTX *c) |
59 | { | 59 | { |
60 | memset (c,0,sizeof(*c)); | 60 | memset (c,0,sizeof(*c)); |
61 | return(1); | 61 | return(1); |
diff --git a/src/lib/libssl/src/crypto/crypto.h b/src/lib/libssl/src/crypto/crypto.h index 11c34d8bbe..00d3cc2aae 100644 --- a/src/lib/libssl/src/crypto/crypto.h +++ b/src/lib/libssl/src/crypto/crypto.h | |||
@@ -533,12 +533,6 @@ int OPENSSL_isservice(void); | |||
533 | 533 | ||
534 | void OPENSSL_init(void); | 534 | void OPENSSL_init(void); |
535 | 535 | ||
536 | #define fips_md_init(alg) fips_md_init_ctx(alg, alg) | ||
537 | |||
538 | #define fips_md_init_ctx(alg, cx) \ | ||
539 | int alg##_Init(cx##_CTX *c) | ||
540 | #define fips_cipher_abort(alg) while(0) | ||
541 | |||
542 | /* CRYPTO_memcmp returns zero iff the |len| bytes at |a| and |b| are equal. It | 536 | /* CRYPTO_memcmp returns zero iff the |len| bytes at |a| and |b| are equal. It |
543 | * takes an amount of time dependent on |len|, but independent of the contents | 537 | * takes an amount of time dependent on |len|, but independent of the contents |
544 | * of |a| and |b|. Unlike memcmp, it cannot be used to put elements into a | 538 | * of |a| and |b|. Unlike memcmp, it cannot be used to put elements into a |
diff --git a/src/lib/libssl/src/crypto/md4/md4_dgst.c b/src/lib/libssl/src/crypto/md4/md4_dgst.c index b5b165b052..b4edd6405f 100644 --- a/src/lib/libssl/src/crypto/md4/md4_dgst.c +++ b/src/lib/libssl/src/crypto/md4/md4_dgst.c | |||
@@ -71,7 +71,7 @@ const char MD4_version[]="MD4" OPENSSL_VERSION_PTEXT; | |||
71 | #define INIT_DATA_C (unsigned long)0x98badcfeL | 71 | #define INIT_DATA_C (unsigned long)0x98badcfeL |
72 | #define INIT_DATA_D (unsigned long)0x10325476L | 72 | #define INIT_DATA_D (unsigned long)0x10325476L |
73 | 73 | ||
74 | fips_md_init(MD4) | 74 | int MD4_Init(MD4_CTX *c) |
75 | { | 75 | { |
76 | memset (c,0,sizeof(*c)); | 76 | memset (c,0,sizeof(*c)); |
77 | c->A=INIT_DATA_A; | 77 | c->A=INIT_DATA_A; |
diff --git a/src/lib/libssl/src/crypto/md5/md5_dgst.c b/src/lib/libssl/src/crypto/md5/md5_dgst.c index 265890de52..dffddf44d9 100644 --- a/src/lib/libssl/src/crypto/md5/md5_dgst.c +++ b/src/lib/libssl/src/crypto/md5/md5_dgst.c | |||
@@ -71,7 +71,7 @@ const char MD5_version[]="MD5" OPENSSL_VERSION_PTEXT; | |||
71 | #define INIT_DATA_C (unsigned long)0x98badcfeL | 71 | #define INIT_DATA_C (unsigned long)0x98badcfeL |
72 | #define INIT_DATA_D (unsigned long)0x10325476L | 72 | #define INIT_DATA_D (unsigned long)0x10325476L |
73 | 73 | ||
74 | fips_md_init(MD5) | 74 | int MD5_Init(MD5_CTX *c) |
75 | { | 75 | { |
76 | memset (c,0,sizeof(*c)); | 76 | memset (c,0,sizeof(*c)); |
77 | c->A=INIT_DATA_A; | 77 | c->A=INIT_DATA_A; |
diff --git a/src/lib/libssl/src/crypto/mdc2/mdc2dgst.c b/src/lib/libssl/src/crypto/mdc2/mdc2dgst.c index d66ed6a1c6..302f9ab9a8 100644 --- a/src/lib/libssl/src/crypto/mdc2/mdc2dgst.c +++ b/src/lib/libssl/src/crypto/mdc2/mdc2dgst.c | |||
@@ -76,7 +76,7 @@ | |||
76 | *((c)++)=(unsigned char)(((l)>>24L)&0xff)) | 76 | *((c)++)=(unsigned char)(((l)>>24L)&0xff)) |
77 | 77 | ||
78 | static void mdc2_body(MDC2_CTX *c, const unsigned char *in, size_t len); | 78 | static void mdc2_body(MDC2_CTX *c, const unsigned char *in, size_t len); |
79 | fips_md_init(MDC2) | 79 | int MDC2_Init(MDC2_CTX *c) |
80 | { | 80 | { |
81 | c->num=0; | 81 | c->num=0; |
82 | c->pad_type=1; | 82 | c->pad_type=1; |
diff --git a/src/lib/libssl/src/crypto/ripemd/rmd_dgst.c b/src/lib/libssl/src/crypto/ripemd/rmd_dgst.c index d8e72da51b..74dbcd0c75 100644 --- a/src/lib/libssl/src/crypto/ripemd/rmd_dgst.c +++ b/src/lib/libssl/src/crypto/ripemd/rmd_dgst.c | |||
@@ -70,7 +70,7 @@ const char RMD160_version[]="RIPE-MD160" OPENSSL_VERSION_PTEXT; | |||
70 | void ripemd160_block(RIPEMD160_CTX *c, unsigned long *p,size_t num); | 70 | void ripemd160_block(RIPEMD160_CTX *c, unsigned long *p,size_t num); |
71 | # endif | 71 | # endif |
72 | 72 | ||
73 | fips_md_init(RIPEMD160) | 73 | int RIPEMD160_Init(RIPEMD160_CTX *c) |
74 | { | 74 | { |
75 | memset (c,0,sizeof(*c)); | 75 | memset (c,0,sizeof(*c)); |
76 | c->A=RIPEMD160_A; | 76 | c->A=RIPEMD160_A; |
diff --git a/src/lib/libssl/src/crypto/sha/sha256.c b/src/lib/libssl/src/crypto/sha/sha256.c index e767afde5a..cf9c9a050b 100644 --- a/src/lib/libssl/src/crypto/sha/sha256.c +++ b/src/lib/libssl/src/crypto/sha/sha256.c | |||
@@ -17,7 +17,7 @@ | |||
17 | 17 | ||
18 | const char SHA256_version[]="SHA-256" OPENSSL_VERSION_PTEXT; | 18 | const char SHA256_version[]="SHA-256" OPENSSL_VERSION_PTEXT; |
19 | 19 | ||
20 | fips_md_init_ctx(SHA224, SHA256) | 20 | int SHA224_Init(SHA256_CTX *c) |
21 | { | 21 | { |
22 | memset (c,0,sizeof(*c)); | 22 | memset (c,0,sizeof(*c)); |
23 | c->h[0]=0xc1059ed8UL; c->h[1]=0x367cd507UL; | 23 | c->h[0]=0xc1059ed8UL; c->h[1]=0x367cd507UL; |
@@ -28,7 +28,7 @@ fips_md_init_ctx(SHA224, SHA256) | |||
28 | return 1; | 28 | return 1; |
29 | } | 29 | } |
30 | 30 | ||
31 | fips_md_init(SHA256) | 31 | int SHA256_Init(SHA256_CTX *c) |
32 | { | 32 | { |
33 | memset (c,0,sizeof(*c)); | 33 | memset (c,0,sizeof(*c)); |
34 | c->h[0]=0x6a09e667UL; c->h[1]=0xbb67ae85UL; | 34 | c->h[0]=0x6a09e667UL; c->h[1]=0xbb67ae85UL; |
diff --git a/src/lib/libssl/src/crypto/sha/sha512.c b/src/lib/libssl/src/crypto/sha/sha512.c index ca7991a9ca..d8fa933cde 100644 --- a/src/lib/libssl/src/crypto/sha/sha512.c +++ b/src/lib/libssl/src/crypto/sha/sha512.c | |||
@@ -60,7 +60,7 @@ const char SHA512_version[]="SHA-512" OPENSSL_VERSION_PTEXT; | |||
60 | #define SHA512_BLOCK_CAN_MANAGE_UNALIGNED_DATA | 60 | #define SHA512_BLOCK_CAN_MANAGE_UNALIGNED_DATA |
61 | #endif | 61 | #endif |
62 | 62 | ||
63 | fips_md_init_ctx(SHA384, SHA512) | 63 | int SHA384_Init(SHA512_CTX *c) |
64 | { | 64 | { |
65 | c->h[0]=U64(0xcbbb9d5dc1059ed8); | 65 | c->h[0]=U64(0xcbbb9d5dc1059ed8); |
66 | c->h[1]=U64(0x629a292a367cd507); | 66 | c->h[1]=U64(0x629a292a367cd507); |
@@ -76,7 +76,7 @@ fips_md_init_ctx(SHA384, SHA512) | |||
76 | return 1; | 76 | return 1; |
77 | } | 77 | } |
78 | 78 | ||
79 | fips_md_init(SHA512) | 79 | int SHA512_Init(SHA512_CTX *c) |
80 | { | 80 | { |
81 | c->h[0]=U64(0x6a09e667f3bcc908); | 81 | c->h[0]=U64(0x6a09e667f3bcc908); |
82 | c->h[1]=U64(0xbb67ae8584caa73b); | 82 | c->h[1]=U64(0xbb67ae8584caa73b); |
diff --git a/src/lib/libssl/src/crypto/sha/sha_locl.h b/src/lib/libssl/src/crypto/sha/sha_locl.h index 1210176dda..08ab20d60f 100644 --- a/src/lib/libssl/src/crypto/sha/sha_locl.h +++ b/src/lib/libssl/src/crypto/sha/sha_locl.h | |||
@@ -116,9 +116,9 @@ void sha1_block_data_order (SHA_CTX *c, const void *p,size_t num); | |||
116 | #define INIT_DATA_h4 0xc3d2e1f0UL | 116 | #define INIT_DATA_h4 0xc3d2e1f0UL |
117 | 117 | ||
118 | #ifdef SHA_0 | 118 | #ifdef SHA_0 |
119 | fips_md_init(SHA) | 119 | int SHA_Init(SHA_CTX *c) |
120 | #else | 120 | #else |
121 | fips_md_init_ctx(SHA1, SHA) | 121 | int SHA1_Init(SHA_CTX *c) |
122 | #endif | 122 | #endif |
123 | { | 123 | { |
124 | memset (c,0,sizeof(*c)); | 124 | memset (c,0,sizeof(*c)); |
diff --git a/src/lib/libssl/src/crypto/whrlpool/wp_dgst.c b/src/lib/libssl/src/crypto/whrlpool/wp_dgst.c index 7e28bef51d..143a70f8bc 100644 --- a/src/lib/libssl/src/crypto/whrlpool/wp_dgst.c +++ b/src/lib/libssl/src/crypto/whrlpool/wp_dgst.c | |||
@@ -55,7 +55,7 @@ | |||
55 | #include <openssl/crypto.h> | 55 | #include <openssl/crypto.h> |
56 | #include <string.h> | 56 | #include <string.h> |
57 | 57 | ||
58 | fips_md_init(WHIRLPOOL) | 58 | int WHIRLPOOL_Init(WHIRLPOOL_CTX *c) |
59 | { | 59 | { |
60 | memset (c,0,sizeof(*c)); | 60 | memset (c,0,sizeof(*c)); |
61 | return(1); | 61 | return(1); |