@@ -3823,7 +3823,6 @@ static int wolfssl_asn1_time_to_secs(const WOLFSSL_ASN1_TIME* t,
38233823 * @param [in] from ASN.1 TIME object as start time.
38243824 * @param [in] to ASN.1 TIME object as end time.
38253825 * @return 1 on success.
3826- * @return 0 when days or secs is NULL.
38273826 * @return 0 when conversion of time fails.
38283827 */
38293828int wolfSSL_ASN1_TIME_diff (int * days , int * secs , const WOLFSSL_ASN1_TIME * from ,
@@ -3833,21 +3832,15 @@ int wolfSSL_ASN1_TIME_diff(int *days, int *secs, const WOLFSSL_ASN1_TIME *from,
38333832
38343833 WOLFSSL_ENTER ("wolfSSL_ASN1_TIME_diff" );
38353834
3836- /* Validate parameters. */
3837- if (days == NULL ) {
3838- WOLFSSL_MSG ("days is NULL" );
3839- ret = 0 ;
3840- }
3841- if ((ret == 1 ) && (secs == NULL )) {
3842- WOLFSSL_MSG ("secs is NULL" );
3843- ret = 0 ;
3844- }
3845-
3846- if ((ret == 1 ) && ((from == NULL ) && (to == NULL ))) {
3847- * days = 0 ;
3848- * secs = 0 ;
3835+ if ((from == NULL ) && (to == NULL )) {
3836+ if (days != NULL ) {
3837+ * days = 0 ;
3838+ }
3839+ if (secs != NULL ) {
3840+ * secs = 0 ;
3841+ }
38493842 }
3850- else if ( ret == 1 ) {
3843+ else {
38513844 const long long SECS_PER_DAY = 24 * 60 * 60 ;
38523845 long long fromSecs ;
38533846 long long toSecs = 0 ;
@@ -3858,8 +3851,13 @@ int wolfSSL_ASN1_TIME_diff(int *days, int *secs, const WOLFSSL_ASN1_TIME *from,
38583851 }
38593852 if (ret == 1 ) {
38603853 long long diffSecs = toSecs - fromSecs ;
3861- * days = (int ) (diffSecs / SECS_PER_DAY );
3862- * secs = (int ) (diffSecs - ((long long )* days * SECS_PER_DAY ));
3854+ if (days != NULL ) {
3855+ * days = (int ) (diffSecs / SECS_PER_DAY );
3856+ }
3857+ if (secs != NULL ) {
3858+ * secs = (int ) (diffSecs -
3859+ ((long long )(diffSecs / SECS_PER_DAY ) * SECS_PER_DAY ));
3860+ }
38633861 }
38643862 }
38653863
0 commit comments