Skip to content

Commit bac158c

Browse files
committed
ext/sysvshm: use size_t and ssize_t instead of zend_long
1 parent 6154fac commit bac158c

File tree

2 files changed

+18
-23
lines changed

2 files changed

+18
-23
lines changed

ext/sysvshm/php_sysvshm.h

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -41,17 +41,17 @@ typedef struct {
4141

4242
typedef struct {
4343
zend_long key;
44-
zend_long length;
45-
zend_long next;
44+
size_t length;
45+
size_t next;
4646
char mem;
4747
} sysvshm_chunk;
4848

4949
typedef struct {
5050
char magic[8];
51-
zend_long start;
52-
zend_long end;
53-
zend_long free;
54-
zend_long total;
51+
size_t start;
52+
size_t end;
53+
size_t free;
54+
size_t total;
5555
} sysvshm_chunk_head;
5656

5757
typedef struct {

ext/sysvshm/sysvshm.c

Lines changed: 12 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -91,8 +91,8 @@ ZEND_GET_MODULE(sysvshm)
9191
sysvshm_module php_sysvshm;
9292

9393
static bool php_put_shm_data(sysvshm_chunk_head *ptr, zend_long key, const zend_string *data);
94-
static zend_long php_check_shm_data(sysvshm_chunk_head *ptr, zend_long key);
95-
static void php_remove_shm_data(sysvshm_chunk_head *ptr, zend_long shm_varpos);
94+
static ssize_t php_check_shm_data(sysvshm_chunk_head *ptr, zend_long key);
95+
static void php_remove_shm_data(sysvshm_chunk_head *ptr, size_t shm_varpos);
9696

9797
/* {{{ PHP_MINIT_FUNCTION */
9898
PHP_MINIT_FUNCTION(sysvshm)
@@ -284,7 +284,6 @@ PHP_FUNCTION(shm_get_var)
284284
zend_long shm_key;
285285
sysvshm_shm *shm_list_ptr;
286286
char *shm_data;
287-
zend_long shm_varpos;
288287
sysvshm_chunk *shm_var;
289288
php_unserialize_data_t var_hash;
290289

@@ -300,9 +299,9 @@ PHP_FUNCTION(shm_get_var)
300299

301300
/* setup string-variable and serialize */
302301
/* get serialized variable from shared memory */
303-
shm_varpos = php_check_shm_data(shm_list_ptr->ptr, shm_key);
302+
ssize_t shm_varpos = php_check_shm_data(shm_list_ptr->ptr, shm_key);
304303

305-
if (shm_varpos < 0) {
304+
if (shm_varpos == -1) {
306305
php_error_docref(NULL, E_WARNING, "Variable key " ZEND_LONG_FMT " doesn't exist", shm_key);
307306
RETURN_FALSE;
308307
}
@@ -343,7 +342,7 @@ PHP_FUNCTION(shm_has_var)
343342
PHP_FUNCTION(shm_remove_var)
344343
{
345344
zval *shm_id;
346-
zend_long shm_key, shm_varpos;
345+
zend_long shm_key;
347346
sysvshm_shm *shm_list_ptr;
348347

349348
if (SUCCESS != zend_parse_parameters(ZEND_NUM_ARGS(), "Ol", &shm_id, sysvshm_ce, &shm_key)) {
@@ -356,9 +355,9 @@ PHP_FUNCTION(shm_remove_var)
356355
RETURN_THROWS();
357356
}
358357

359-
shm_varpos = php_check_shm_data(shm_list_ptr->ptr, shm_key);
358+
ssize_t shm_varpos = php_check_shm_data(shm_list_ptr->ptr, shm_key);
360359

361-
if (shm_varpos < 0) {
360+
if (shm_varpos == -1) {
362361
php_error_docref(NULL, E_WARNING, "Variable key " ZEND_LONG_FMT " doesn't exist", shm_key);
363362
RETURN_FALSE;
364363
}
@@ -372,7 +371,7 @@ PHP_FUNCTION(shm_remove_var)
372371
static bool php_put_shm_data(sysvshm_chunk_head *ptr, zend_long key, const zend_string *data)
373372
{
374373
sysvshm_chunk *shm_var;
375-
zend_long shm_varpos;
374+
ssize_t shm_varpos;
376375

377376
size_t total_size = ((zend_long) (ZSTR_LEN(data) + sizeof(sysvshm_chunk) - 1) / sizeof(zend_long)) * sizeof(zend_long) + sizeof(zend_long); /* zend_long alligment */
378377

@@ -395,15 +394,13 @@ static bool php_put_shm_data(sysvshm_chunk_head *ptr, zend_long key, const zend_
395394
}
396395
/* }}} */
397396

398-
/* {{{ php_check_shm_data */
399-
static zend_long php_check_shm_data(sysvshm_chunk_head *ptr, zend_long key)
397+
static ssize_t php_check_shm_data(sysvshm_chunk_head *ptr, zend_long key)
400398
{
401-
zend_long pos;
402399
sysvshm_chunk *shm_var;
403400

404401
ZEND_ASSERT(ptr);
405402

406-
pos = ptr->start;
403+
size_t pos = ptr->start;
407404

408405
for (;;) {
409406
if (pos >= ptr->end) {
@@ -421,19 +418,17 @@ static zend_long php_check_shm_data(sysvshm_chunk_head *ptr, zend_long key)
421418
}
422419
return -1;
423420
}
424-
/* }}} */
425421

426-
static void php_remove_shm_data(sysvshm_chunk_head *ptr, zend_long shm_varpos)
422+
static void php_remove_shm_data(sysvshm_chunk_head *ptr, size_t shm_varpos)
427423
{
428424
sysvshm_chunk *chunk_ptr, *next_chunk_ptr;
429-
zend_long memcpy_len;
430425

431426
ZEND_ASSERT(ptr);
432427

433428
chunk_ptr = (sysvshm_chunk *) ((char *) ptr + shm_varpos);
434429
next_chunk_ptr = (sysvshm_chunk *) ((char *) ptr + shm_varpos + chunk_ptr->next);
435430

436-
memcpy_len = ptr->end-shm_varpos - chunk_ptr->next;
431+
size_t memcpy_len = ptr->end-shm_varpos - chunk_ptr->next;
437432
ptr->free += chunk_ptr->next;
438433
ptr->end -= chunk_ptr->next;
439434
if (memcpy_len > 0) {

0 commit comments

Comments
 (0)