modules/cache/mod_socache_shmcb.c:393: error: INTEGER_OVERFLOW_L2
  ([0, +oo] - [0, 95]):unsigned64.

modules/cache/mod_socache_shmcb.c:381:19: <LHS trace>
379. 
380.     shm_segment = apr_shm_baseaddr_get(ctx->shm);
381.     shm_segsize = apr_shm_size_get(ctx->shm);
                       ^
382.     if (shm_segsize < (5 * ALIGNED_HEADER_SIZE)) {
383.         /* the segment is ridiculously small, bail out */

modules/cache/mod_socache_shmcb.c:381:19: Unknown value from: apr_shm_size_get
379. 
380.     shm_segment = apr_shm_baseaddr_get(ctx->shm);
381.     shm_segsize = apr_shm_size_get(ctx->shm);
                       ^
382.     if (shm_segsize < (5 * ALIGNED_HEADER_SIZE)) {
383.         /* the segment is ridiculously small, bail out */

modules/cache/mod_socache_shmcb.c:381:5: Assignment
379. 
380.     shm_segment = apr_shm_baseaddr_get(ctx->shm);
381.     shm_segsize = apr_shm_size_get(ctx->shm);
         ^
382.     if (shm_segsize < (5 * ALIGNED_HEADER_SIZE)) {
383.         /* the segment is ridiculously small, bail out */

modules/cache/mod_socache_shmcb.c:393:5: Binary operation: ([0, +oo] - [0, 95]):unsigned64
391.                  shm_segsize);
392.     /* Discount the header */
393.     shm_segsize -= ALIGNED_HEADER_SIZE;
         ^
394.     /* Select index size based on average object size hints, if given. */
395.     avg_obj_size = hints && hints->avg_obj_size ? hints->avg_obj_size : 150;

static apr_status_t socache_shmcb_init(ap_socache_instance_t *ctx,
                                       const char *namespace,
                                       const struct ap_socache_hints *hints,
                                       server_rec *s, apr_pool_t *p)
{
    void *shm_segment;
    apr_size_t shm_segsize;
    apr_status_t rv;
    SHMCBHeader *header;
    unsigned int num_subcache, num_idx, loop;
    apr_size_t avg_obj_size, avg_id_len;
    if (ctx->data_file == NULL) {
        const char *path = apr_pstrcat(p, DEFAULT_SHMCB_PREFIX, namespace,
                                       DEFAULT_SHMCB_SUFFIX, NULL);
        ctx->data_file = ap_runtime_dir_relative(p, path);
    }
    rv = apr_shm_create(&ctx->shm, ctx->shm_size, NULL, p);
    if (APR_STATUS_IS_ENOTIMPL(rv)) {
        if (ctx->data_file == NULL) {
            ap_log_error(APLOG_MARK, APLOG_ERR, 0, s, APLOGNO(00818)
                         "Could not use default path '%s' for shmcb socache",
                         ctx->data_file);
            return APR_EINVAL;
        }
        apr_shm_remove(ctx->data_file, p);
        rv = apr_shm_create(&ctx->shm, ctx->shm_size, ctx->data_file, p);
    }
    if (rv != APR_SUCCESS) {
        ap_log_error(APLOG_MARK, APLOG_ERR, rv, s, APLOGNO(00819)
                     "Could not allocate shared memory segment for shmcb "
                     "socache");
        return rv;
    }
    shm_segment = apr_shm_baseaddr_get(ctx->shm);
    shm_segsize = apr_shm_size_get(ctx->shm);
    if (shm_segsize < (5 * ALIGNED_HEADER_SIZE)) {
        ap_log_error(APLOG_MARK, APLOG_ERR, 0, s, APLOGNO(00820)
                     "shared memory segment too small");
        return APR_ENOSPC;
    }
    ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, s, APLOGNO(00821)
                 "shmcb_init allocated %" APR_SIZE_T_FMT
                 " bytes of shared memory",
                 shm_segsize);
    shm_segsize -= ALIGNED_HEADER_SIZE;
    avg_obj_size = hints && hints->avg_obj_size ? hints->avg_obj_size : 150;
    avg_id_len = hints && hints->avg_id_len ? hints->avg_id_len : 30;
    num_idx = (shm_segsize) / (avg_obj_size + avg_id_len);
    num_subcache = 256;
    while ((num_idx / num_subcache) < (2 * num_subcache))
        num_subcache /= 2;
    num_idx /= num_subcache;
    ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, s, APLOGNO(00822)
                 "for %" APR_SIZE_T_FMT " bytes (%" APR_SIZE_T_FMT
                 " including header), recommending %u subcaches, "
                 "%u indexes each", shm_segsize,
                 shm_segsize + ALIGNED_HEADER_SIZE,
                 num_subcache, num_idx);
    if (num_idx < 5) {
        ap_log_error(APLOG_MARK, APLOG_ERR, 0, s, APLOGNO(00823)
                     "shared memory segment too small");
        return APR_ENOSPC;
    }
    ctx->header = header = shm_segment;
    header->stat_stores = 0;
    header->stat_replaced = 0;
    header->stat_expiries = 0;
    header->stat_scrolled = 0;
    header->stat_retrieves_hit = 0;
    header->stat_retrieves_miss = 0;
    header->stat_removes_hit = 0;
    header->stat_removes_miss = 0;
    header->subcache_num = num_subcache;
    header->subcache_size = (size_t)(shm_segsize / num_subcache);
    if (header->subcache_size != APR_ALIGN_DEFAULT(header->subcache_size)) {
        header->subcache_size = APR_ALIGN_DEFAULT(header->subcache_size) -
                                APR_ALIGN_DEFAULT(1);
    }
    header->subcache_data_offset = ALIGNED_SUBCACHE_SIZE +
                                   num_idx * ALIGNED_INDEX_SIZE;
    header->subcache_data_size = header->subcache_size -
                                 header->subcache_data_offset;
    header->index_num = num_idx;
    ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, s, APLOGNO(00824)
                 "shmcb_init_memory choices follow");
    ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, s, APLOGNO(00825)
                 "subcache_num = %u", header->subcache_num);
    ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, s, APLOGNO(00826)
                 "subcache_size = %u", header->subcache_size);
    ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, s, APLOGNO(00827)
                 "subcache_data_offset = %u", header->subcache_data_offset);
    ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, s, APLOGNO(00828)
                 "subcache_data_size = %u", header->subcache_data_size);
    ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, s, APLOGNO(00829)
                 "index_num = %u", header->index_num);
    for (loop = 0; loop < header->subcache_num; loop++) {
        SHMCBSubcache *subcache = SHMCB_SUBCACHE(header, loop);
        subcache->idx_pos = subcache->idx_used = 0;
        subcache->data_pos = subcache->data_used = 0;
    }
    ap_log_error(APLOG_MARK, APLOG_INFO, 0, s, APLOGNO(00830)
                 "Shared memory socache initialised");
    return APR_SUCCESS;
}
['static apr_status_t socache_shmcb_init(ap_socache_instance_t *ctx,\n                                       const char *namespace,\n                                       const struct ap_socache_hints *hints,\n                                       server_rec *s, apr_pool_t *p)\n{\n    void *shm_segment;\n    apr_size_t shm_segsize;\n    apr_status_t rv;\n    SHMCBHeader *header;\n    unsigned int num_subcache, num_idx, loop;\n    apr_size_t avg_obj_size, avg_id_len;\n    if (ctx->data_file == NULL) {\n        const char *path = apr_pstrcat(p, DEFAULT_SHMCB_PREFIX, namespace,\n                                       DEFAULT_SHMCB_SUFFIX, NULL);\n        ctx->data_file = ap_runtime_dir_relative(p, path);\n    }\n    rv = apr_shm_create(&ctx->shm, ctx->shm_size, NULL, p);\n    if (APR_STATUS_IS_ENOTIMPL(rv)) {\n        if (ctx->data_file == NULL) {\n            ap_log_error(APLOG_MARK, APLOG_ERR, 0, s, APLOGNO(00818)\n                         "Could not use default path \'%s\' for shmcb socache",\n                         ctx->data_file);\n            return APR_EINVAL;\n        }\n        apr_shm_remove(ctx->data_file, p);\n        rv = apr_shm_create(&ctx->shm, ctx->shm_size, ctx->data_file, p);\n    }\n    if (rv != APR_SUCCESS) {\n        ap_log_error(APLOG_MARK, APLOG_ERR, rv, s, APLOGNO(00819)\n                     "Could not allocate shared memory segment for shmcb "\n                     "socache");\n        return rv;\n    }\n    shm_segment = apr_shm_baseaddr_get(ctx->shm);\n    shm_segsize = apr_shm_size_get(ctx->shm);\n    if (shm_segsize < (5 * ALIGNED_HEADER_SIZE)) {\n        ap_log_error(APLOG_MARK, APLOG_ERR, 0, s, APLOGNO(00820)\n                     "shared memory segment too small");\n        return APR_ENOSPC;\n    }\n    ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, s, APLOGNO(00821)\n                 "shmcb_init allocated %" APR_SIZE_T_FMT\n                 " bytes of shared memory",\n                 shm_segsize);\n    shm_segsize -= ALIGNED_HEADER_SIZE;\n    avg_obj_size = hints && hints->avg_obj_size ? hints->avg_obj_size : 150;\n    avg_id_len = hints && hints->avg_id_len ? hints->avg_id_len : 30;\n    num_idx = (shm_segsize) / (avg_obj_size + avg_id_len);\n    num_subcache = 256;\n    while ((num_idx / num_subcache) < (2 * num_subcache))\n        num_subcache /= 2;\n    num_idx /= num_subcache;\n    ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, s, APLOGNO(00822)\n                 "for %" APR_SIZE_T_FMT " bytes (%" APR_SIZE_T_FMT\n                 " including header), recommending %u subcaches, "\n                 "%u indexes each", shm_segsize,\n                 shm_segsize + ALIGNED_HEADER_SIZE,\n                 num_subcache, num_idx);\n    if (num_idx < 5) {\n        ap_log_error(APLOG_MARK, APLOG_ERR, 0, s, APLOGNO(00823)\n                     "shared memory segment too small");\n        return APR_ENOSPC;\n    }\n    ctx->header = header = shm_segment;\n    header->stat_stores = 0;\n    header->stat_replaced = 0;\n    header->stat_expiries = 0;\n    header->stat_scrolled = 0;\n    header->stat_retrieves_hit = 0;\n    header->stat_retrieves_miss = 0;\n    header->stat_removes_hit = 0;\n    header->stat_removes_miss = 0;\n    header->subcache_num = num_subcache;\n    header->subcache_size = (size_t)(shm_segsize / num_subcache);\n    if (header->subcache_size != APR_ALIGN_DEFAULT(header->subcache_size)) {\n        header->subcache_size = APR_ALIGN_DEFAULT(header->subcache_size) -\n                                APR_ALIGN_DEFAULT(1);\n    }\n    header->subcache_data_offset = ALIGNED_SUBCACHE_SIZE +\n                                   num_idx * ALIGNED_INDEX_SIZE;\n    header->subcache_data_size = header->subcache_size -\n                                 header->subcache_data_offset;\n    header->index_num = num_idx;\n    ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, s, APLOGNO(00824)\n                 "shmcb_init_memory choices follow");\n    ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, s, APLOGNO(00825)\n                 "subcache_num = %u", header->subcache_num);\n    ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, s, APLOGNO(00826)\n                 "subcache_size = %u", header->subcache_size);\n    ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, s, APLOGNO(00827)\n                 "subcache_data_offset = %u", header->subcache_data_offset);\n    ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, s, APLOGNO(00828)\n                 "subcache_data_size = %u", header->subcache_data_size);\n    ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, s, APLOGNO(00829)\n                 "index_num = %u", header->index_num);\n    for (loop = 0; loop < header->subcache_num; loop++) {\n        SHMCBSubcache *subcache = SHMCB_SUBCACHE(header, loop);\n        subcache->idx_pos = subcache->idx_used = 0;\n        subcache->data_pos = subcache->data_used = 0;\n    }\n    ap_log_error(APLOG_MARK, APLOG_INFO, 0, s, APLOGNO(00830)\n                 "Shared memory socache initialised");\n    return APR_SUCCESS;\n}']