Resolves: #1996685 - add various Coverity/Clang cleanups
This commit is contained in:
		
							parent
							
								
									3197b2f7c7
								
							
						
					
					
						commit
						9781ac9f9d
					
				
							
								
								
									
										239
									
								
								apr-1.7.0-r1891269+.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										239
									
								
								apr-1.7.0-r1891269+.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,239 @@ | ||||
| # ./pullrev.sh 1891269 1891198 1891196 | ||||
| http://svn.apache.org/viewvc?view=revision&revision=1891269 | ||||
| http://svn.apache.org/viewvc?view=revision&revision=1891198 | ||||
| http://svn.apache.org/viewvc?view=revision&revision=1891196 | ||||
| 
 | ||||
| --- apr-1.7.0/include/arch/unix/apr_arch_thread_mutex.h
 | ||||
| +++ apr-1.7.0/include/arch/unix/apr_arch_thread_mutex.h
 | ||||
| @@ -33,8 +33,10 @@
 | ||||
|  struct apr_thread_mutex_t { | ||||
|      apr_pool_t *pool; | ||||
|      pthread_mutex_t mutex; | ||||
| +#ifndef HAVE_PTHREAD_MUTEX_TIMEDLOCK
 | ||||
|      apr_thread_cond_t *cond; | ||||
|      int locked, num_waiters; | ||||
| +#endif
 | ||||
|  }; | ||||
|  #endif | ||||
|   | ||||
| --- apr-1.7.0/locks/unix/thread_mutex.c
 | ||||
| +++ apr-1.7.0/locks/unix/thread_mutex.c
 | ||||
| @@ -102,6 +102,7 @@
 | ||||
|  { | ||||
|      apr_status_t rv; | ||||
|   | ||||
| +#ifndef HAVE_PTHREAD_MUTEX_TIMEDLOCK
 | ||||
|      if (mutex->cond) { | ||||
|          apr_status_t rv2; | ||||
|   | ||||
| @@ -133,6 +134,7 @@
 | ||||
|   | ||||
|          return rv; | ||||
|      } | ||||
| +#endif
 | ||||
|   | ||||
|      rv = pthread_mutex_lock(&mutex->mutex); | ||||
|  #ifdef HAVE_ZOS_PTHREADS | ||||
| @@ -148,6 +150,7 @@
 | ||||
|  { | ||||
|      apr_status_t rv; | ||||
|   | ||||
| +#ifndef HAVE_PTHREAD_MUTEX_TIMEDLOCK
 | ||||
|      if (mutex->cond) { | ||||
|          apr_status_t rv2; | ||||
|   | ||||
| @@ -177,6 +180,7 @@
 | ||||
|   | ||||
|          return rv; | ||||
|      } | ||||
| +#endif
 | ||||
|   | ||||
|      rv = pthread_mutex_trylock(&mutex->mutex); | ||||
|      if (rv) { | ||||
| @@ -281,6 +285,7 @@
 | ||||
|  { | ||||
|      apr_status_t status; | ||||
|   | ||||
| +#ifndef HAVE_PTHREAD_MUTEX_TIMEDLOCK
 | ||||
|      if (mutex->cond) { | ||||
|          status = pthread_mutex_lock(&mutex->mutex); | ||||
|          if (status) { | ||||
| @@ -303,6 +308,7 @@
 | ||||
|   | ||||
|          mutex->locked = 0; | ||||
|      } | ||||
| +#endif
 | ||||
|   | ||||
|      status = pthread_mutex_unlock(&mutex->mutex); | ||||
|  #ifdef HAVE_ZOS_PTHREADS | ||||
| @@ -318,9 +324,12 @@
 | ||||
|  { | ||||
|      apr_status_t rv, rv2 = APR_SUCCESS; | ||||
|   | ||||
| +#ifndef HAVE_PTHREAD_MUTEX_TIMEDLOCK
 | ||||
|      if (mutex->cond) { | ||||
|          rv2 = apr_thread_cond_destroy(mutex->cond); | ||||
|      } | ||||
| +#endif
 | ||||
| +
 | ||||
|      rv = apr_pool_cleanup_run(mutex->pool, mutex, thread_mutex_cleanup); | ||||
|      if (rv == APR_SUCCESS) { | ||||
|          rv = rv2; | ||||
| --- apr-1.7.0/random/unix/sha2.c
 | ||||
| +++ apr-1.7.0/random/unix/sha2.c
 | ||||
| @@ -425,7 +425,7 @@
 | ||||
|          usedspace = freespace = 0; | ||||
|  } | ||||
|   | ||||
| -void apr__SHA256_Final(sha2_byte digest[], SHA256_CTX* context) {
 | ||||
| +void apr__SHA256_Final(sha2_byte digest[SHA256_DIGEST_LENGTH], SHA256_CTX* context) {
 | ||||
|          sha2_word32     *d = (sha2_word32*)digest; | ||||
|          unsigned int    usedspace; | ||||
|   | ||||
| @@ -496,7 +496,7 @@
 | ||||
|          usedspace = 0; | ||||
|  } | ||||
|   | ||||
| -char *apr__SHA256_End(SHA256_CTX* context, char buffer[]) {
 | ||||
| +char *apr__SHA256_End(SHA256_CTX* context, char buffer[SHA256_DIGEST_STRING_LENGTH]) {
 | ||||
|          sha2_byte       digest[SHA256_DIGEST_LENGTH], *d = digest; | ||||
|          int             i; | ||||
|   | ||||
| --- apr-1.7.0/time/unix/time.c
 | ||||
| +++ apr-1.7.0/time/unix/time.c
 | ||||
| @@ -142,6 +142,9 @@
 | ||||
|      static const int dayoffset[12] = | ||||
|      {306, 337, 0, 31, 61, 92, 122, 153, 184, 214, 245, 275}; | ||||
|   | ||||
| +    if (xt->tm_mon < 0 || xt->tm_mon >= 12)
 | ||||
| +        return APR_EBADDATE;
 | ||||
| +
 | ||||
|      /* shift new year to 1st March in order to make leap year calc easy */ | ||||
|   | ||||
|      if (xt->tm_mon < 2) | ||||
| --- apr-1.7.0/time/win32/time.c
 | ||||
| +++ apr-1.7.0/time/win32/time.c
 | ||||
| @@ -54,6 +54,9 @@
 | ||||
|      static const int dayoffset[12] = | ||||
|      {0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334}; | ||||
|   | ||||
| +    if (tm->wMonth < 1 || tm->wMonth > 12)
 | ||||
| +        return APR_EBADDATE;
 | ||||
| +
 | ||||
|      /* Note; the caller is responsible for filling in detailed tm_usec, | ||||
|       * tm_gmtoff and tm_isdst data when applicable. | ||||
|       */ | ||||
| @@ -228,6 +231,9 @@
 | ||||
|      static const int dayoffset[12] = | ||||
|      {306, 337, 0, 31, 61, 92, 122, 153, 184, 214, 245, 275}; | ||||
|   | ||||
| +    if (xt->tm_mon < 0 || xt->tm_mon >= 12)
 | ||||
| +        return APR_EBADDATE;
 | ||||
| +
 | ||||
|      /* shift new year to 1st March in order to make leap year calc easy */ | ||||
|   | ||||
|      if (xt->tm_mon < 2) | ||||
| --- apr-1.7.0/file_io/unix/readwrite.c
 | ||||
| +++ apr-1.7.0/file_io/unix/readwrite.c
 | ||||
| @@ -146,7 +146,7 @@
 | ||||
|   | ||||
|  APR_DECLARE(apr_status_t) apr_file_write(apr_file_t *thefile, const void *buf, apr_size_t *nbytes) | ||||
|  { | ||||
| -    apr_size_t rv;
 | ||||
| +    apr_size_t rv = APR_SUCCESS;
 | ||||
|   | ||||
|      if (thefile->buffered) { | ||||
|          char *pos = (char *)buf; | ||||
| @@ -160,13 +160,14 @@
 | ||||
|               * logically reading from | ||||
|               */ | ||||
|              apr_int64_t offset = thefile->filePtr - thefile->dataRead + thefile->bufpos; | ||||
| -            if (offset != thefile->filePtr)
 | ||||
| -                lseek(thefile->filedes, offset, SEEK_SET);
 | ||||
| +            if (offset != thefile->filePtr) {
 | ||||
| +                thefile->filePtr = lseek(thefile->filedes, offset, SEEK_SET);
 | ||||
| +                if (thefile->filePtr == -1) rv = errno;
 | ||||
| +            }
 | ||||
|              thefile->bufpos = thefile->dataRead = 0; | ||||
|              thefile->direction = 1; | ||||
|          } | ||||
|   | ||||
| -        rv = 0;
 | ||||
|          while (rv == 0 && size > 0) { | ||||
|              if (thefile->bufpos == thefile->bufsize)   /* write buffer is full*/ | ||||
|                  rv = apr_file_flush_locked(thefile); | ||||
| @@ -244,12 +245,15 @@
 | ||||
|               */ | ||||
|              apr_int64_t offset = thefile->filePtr - thefile->dataRead + | ||||
|                                   thefile->bufpos; | ||||
| -            if (offset != thefile->filePtr)
 | ||||
| -                lseek(thefile->filedes, offset, SEEK_SET);
 | ||||
| +            if (offset != thefile->filePtr) {
 | ||||
| +                thefile->filePtr = lseek(thefile->filedes, offset, SEEK_SET);
 | ||||
| +                if (thefile->filePtr == -1) rv = errno;
 | ||||
| +            }
 | ||||
|              thefile->bufpos = thefile->dataRead = 0; | ||||
|          } | ||||
|   | ||||
|          file_unlock(thefile); | ||||
| +        if (rv) return rv;
 | ||||
|      } | ||||
|   | ||||
|      if ((bytes = writev(thefile->filedes, vec, nvec)) < 0) { | ||||
| --- apr-1.7.0/locks/unix/proc_mutex.c
 | ||||
| +++ apr-1.7.0/locks/unix/proc_mutex.c
 | ||||
| @@ -1518,11 +1518,10 @@
 | ||||
|   | ||||
|  APR_DECLARE(const char *) apr_proc_mutex_defname(void) | ||||
|  { | ||||
| -    apr_status_t rv;
 | ||||
|      apr_proc_mutex_t mutex; | ||||
|   | ||||
| -    if ((rv = proc_mutex_choose_method(&mutex, APR_LOCK_DEFAULT,
 | ||||
| -                                       NULL)) != APR_SUCCESS) {
 | ||||
| +    if (proc_mutex_choose_method(&mutex, APR_LOCK_DEFAULT,
 | ||||
| +                                 NULL) != APR_SUCCESS) {
 | ||||
|          return "unknown"; | ||||
|      } | ||||
|   | ||||
| --- apr-1.7.0/memory/unix/apr_pools.c
 | ||||
| +++ apr-1.7.0/memory/unix/apr_pools.c
 | ||||
| @@ -1338,7 +1338,7 @@
 | ||||
|      apr_size_t free_index; | ||||
|   | ||||
|      pool_concurrency_set_used(pool); | ||||
| -    ps.node = active = pool->active;
 | ||||
| +    ps.node = pool->active;
 | ||||
|      ps.pool = pool; | ||||
|      ps.vbuff.curpos  = ps.node->first_avail; | ||||
|   | ||||
| --- apr-1.7.0/test/teststr.c
 | ||||
| +++ apr-1.7.0/test/teststr.c
 | ||||
| @@ -394,6 +394,19 @@
 | ||||
|      ABTS_STR_EQUAL(tc, apr_cstr_skip_prefix("",      "12"),    NULL); | ||||
|  } | ||||
|   | ||||
| +static void pstrcat(abts_case *tc, void *data)
 | ||||
| +{
 | ||||
| +    ABTS_STR_EQUAL(tc, apr_pstrcat(p, "a", "bc", "def", NULL),
 | ||||
| +                   "abcdef");
 | ||||
| +    ABTS_STR_EQUAL(tc, apr_pstrcat(p, NULL), "");
 | ||||
| +    ABTS_STR_EQUAL(tc, apr_pstrcat(p,
 | ||||
| +                                   "a", "b", "c", "d", "e",
 | ||||
| +                                   "f", "g", "h", "i", "j",
 | ||||
| +                                   "1", "2", "3", "4", "5",
 | ||||
| +                                   NULL),
 | ||||
| +                   "abcdefghij12345");
 | ||||
| +}
 | ||||
| +
 | ||||
|  abts_suite *teststr(abts_suite *suite) | ||||
|  { | ||||
|      suite = ADD_SUITE(suite) | ||||
| @@ -412,6 +425,7 @@
 | ||||
|      abts_run_test(suite, string_cpystrn, NULL); | ||||
|      abts_run_test(suite, snprintf_overflow, NULL); | ||||
|      abts_run_test(suite, skip_prefix, NULL); | ||||
| +    abts_run_test(suite, pstrcat, NULL);
 | ||||
|   | ||||
|      return suite; | ||||
|  } | ||||
							
								
								
									
										7
									
								
								apr.spec
									
									
									
									
									
								
							
							
						
						
									
										7
									
								
								apr.spec
									
									
									
									
									
								
							| @ -6,7 +6,7 @@ | ||||
| Summary: Apache Portable Runtime library | ||||
| Name: apr | ||||
| Version: 1.7.0 | ||||
| Release: 13%{?dist} | ||||
| Release: 14%{?dist} | ||||
| # ASL 2.0: everything | ||||
| # ISC: network_io/apr-1.4.6/network_io/unix/inet_?to?.c | ||||
| # BSD with advertising: strings/apr_snprintf.c, strings/apr_fnmatch.c, | ||||
| @ -21,6 +21,7 @@ Patch1: apr-1.2.2-libdir.patch | ||||
| Patch2: apr-1.2.7-pkgconf.patch | ||||
| Patch3: apr-1.7.0-deepbind.patch | ||||
| Patch4: apr-1.7.0-autoconf.patch | ||||
| Patch5: apr-1.7.0-r1891269+.patch | ||||
| BuildRequires: gcc, autoconf, libtool, libuuid-devel, python3 | ||||
| BuildRequires: make | ||||
| 
 | ||||
| @ -47,6 +48,7 @@ C data structures and routines. | ||||
| %patch2 -p1 -b .pkgconf | ||||
| %patch3 -p1 -b .deepbind | ||||
| %patch4 -p1 -b .autoconf-2-71 | ||||
| %patch5 -p1 -b .r1891269+ | ||||
| 
 | ||||
| %build | ||||
| # regenerate configure script etc. | ||||
| @ -134,6 +136,9 @@ popd | ||||
| %{_datadir}/aclocal/*.m4 | ||||
| 
 | ||||
| %changelog | ||||
| * Tue Aug 24 2021 Luboš Uhliarik <luhliari@redhat.com> - 1.7.0-14 | ||||
| - Resolves: #1996685 - add various Coverity/Clang cleanups | ||||
| 
 | ||||
| * Wed Aug 04 2021 Luboš Uhliarik <luhliari@redhat.com> - 1.7.0-13 | ||||
| - disable sctp protocol support by default | ||||
| 
 | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user