22
33
44ngx_shm_zone_t *
5- ngx_shared_create_zone (ngx_conf_t * cf , ngx_uint_t size , ngx_str_t prefix , ngx_str_t suffix , void * tag )
5+ ngx_shared_create_zone (ngx_conf_t * cf , ngx_uint_t size , ngx_str_t prefix ,
6+ ngx_str_t suffix , void * tag )
67{
78 ngx_shm_zone_t * shm_zone ;
8- ngx_str_t shm_zone_name ;
9+ ngx_str_t name ;
910
10- shm_zone_name .len = prefix .len + 1 + suffix .len ;
11- shm_zone_name .data = ngx_pcalloc (cf -> pool , shm_zone_name .len + 1 );
12- ngx_snprintf (shm_zone_name .data , shm_zone_name .len + 1 , "%s:%s\0" , prefix .data , suffix .data );
11+ name .len = prefix .len + 1 + suffix .len ;
12+ name .data = ngx_pcalloc (cf -> pool , name .len + 1 );
1313
14- shm_zone = ngx_shared_memory_add (cf , & shm_zone_name , size , tag );
14+ if (name .data == NULL ) {
15+ return NULL ;
16+ }
17+
18+ ngx_snprintf (name .data , name .len + 1 , "%V:%V\0" , & prefix , & suffix );
1519
20+ shm_zone = ngx_shared_memory_add (cf , & name , size , tag );
1621 if (shm_zone == NULL ) {
1722 return NULL ;
1823 }
@@ -22,18 +27,19 @@ ngx_shared_create_zone(ngx_conf_t *cf, ngx_uint_t size, ngx_str_t prefix, ngx_st
2227
2328
2429ngx_shm_zone_t *
25- ngx_shared_memory_find (volatile ngx_cycle_t * cycle , ngx_str_t prefix , ngx_str_t suffix , void * tag )
30+ ngx_shared_memory_find (volatile ngx_cycle_t * cycle , ngx_str_t prefix ,
31+ ngx_str_t suffix , void * tag )
2632{
2733 ngx_uint_t i ;
2834 ngx_shm_zone_t * shm_zone ;
2935 ngx_list_part_t * part ;
30- ngx_str_t shm_zone_name ;
36+ ngx_str_t name ;
3137
32- shm_zone_name .len = prefix .len + 1 + suffix .len ;
33- shm_zone_name .data = alloca (shm_zone_name .len + 1 );
34- bzero (shm_zone_name .data , shm_zone_name .len + 1 );
38+ name .len = prefix .len + 1 + suffix .len ;
39+ name .data = alloca (name .len + 1 );
40+ bzero (name .data , name .len + 1 );
3541
36- ngx_snprintf (shm_zone_name .data , shm_zone_name .len + 1 , "%s:%s\0" , prefix .data , suffix .data );
42+ ngx_snprintf (name .data , name .len + 1 , "%s:%s\0" , prefix .data , suffix .data );
3743
3844 part = (ngx_list_part_t * ) & (cycle -> shared_memory .part );
3945 shm_zone = part -> elts ;
@@ -49,11 +55,11 @@ ngx_shared_memory_find(volatile ngx_cycle_t *cycle, ngx_str_t prefix, ngx_str_t
4955 i = 0 ;
5056 }
5157
52- if (shm_zone_name .len != shm_zone [i ].shm .name .len ) {
58+ if (name .len != shm_zone [i ].shm .name .len ) {
5359 continue ;
5460 }
5561
56- if (ngx_strncmp (shm_zone_name .data , shm_zone [i ].shm .name .data , shm_zone_name .len ) != 0 )
62+ if (ngx_strncmp (name .data , shm_zone [i ].shm .name .data , name .len ) != 0 )
5763 {
5864 continue ;
5965 }
@@ -74,7 +80,7 @@ ngx_shm_copy_string(ngx_slab_pool_t *shpool, ngx_str_t src)
7480{
7581 ngx_str_t s = { .data = 0 , .len = 0 };
7682 if (src .len ) {
77- s .data = ngx_slab_calloc_locked (shpool , src .len );
83+ s .data = ngx_slab_calloc_locked (shpool , src .len + 1 );
7884 if (s .data != NULL ) {
7985 ngx_memcpy (s .data , src .data , src .len );
8086 s .len = src .len ;
@@ -105,14 +111,15 @@ ngx_shm_copy_pairs(ngx_slab_pool_t *shpool, ngx_pair_t *src, ngx_uint_t count)
105111}
106112
107113
108- ngx_uint_t *
109- ngx_shm_copy_uint_vec (ngx_slab_pool_t * shpool , ngx_uint_t * src , ngx_uint_t count )
114+ ngx_int_t *
115+ ngx_shm_copy_int_vec (ngx_slab_pool_t * shpool , ngx_int_t * src ,
116+ ngx_uint_t count )
110117{
111- ngx_uint_t * codes = NULL ;
118+ ngx_int_t * codes = NULL ;
112119 if (count ) {
113- codes = ngx_slab_calloc_locked (shpool , count * sizeof (ngx_uint_t ));
120+ codes = ngx_slab_calloc_locked (shpool , count * sizeof (ngx_int_t ));
114121 if (codes != NULL ) {
115- ngx_memcpy (codes , src , count * sizeof (ngx_uint_t ));
122+ ngx_memcpy (codes , src , count * sizeof (ngx_int_t ));
116123 }
117124 }
118125 return codes ;
0 commit comments