Re: Embedding segfault.

From: Date: Mon, 04 Jan 2016 21:39:15 +0000
Subject: Re: Embedding segfault.
References: 1  Groups: php.pecl.dev 
Request: Send a blank email to pecl-dev+get-13468@lists.php.net to get a copy of this message
Didn't test but argc; should probably be argc--;. Adam On Mon, Jan 4, 2016 at 11:00 AM, Ben Trafford <ben@prodigal.ca> wrote: > Hello! > > I'm tinkering with embedding PHP, using Sara Golemon's book as a guide. > > I'm using the following example from chapter 19.3: > > #include <stdio.h> > #include <sapi/embed/php_embed.h> > > int main(int argc, char *argv[]) > { > zend_file_handle script; > > /* Basic parameter checking */ > if (argc <= 1) { > fprintf(stderr, "Usage: embed1 filename.php <arguments>\n"); > return -1; > } > > /* Set up a File Handle structure */ > script.type = ZEND_HANDLE_FP; > script.filename = argv[1]; > script.opened_path = NULL; > script.free_filename = 0; > if (!(script.handle.fp = fopen(script.filename, "rb"))) { > fprintf(stderr, "Unable to open: %s\n", argv[1]); > return -1; > } > > /* Ignore argv[0] when passing to PHP */ > argc; > argv++; > > PHP_EMBED_START_BLOCK(argc,argv) > php_execute_script(&script TSRMLS_CC); > PHP_EMBED_END_BLOCK() > > return 0; > } > > It's tossing me a segfault, and the trace is coming back to a problem with > strlen(), which is usually indicative that something is being passed NULL > and shouldn't be. > > I've narrowed down the issue to php_execute_script(). Now, Sara's examples > are a decade old, but I've looked at the guts of PHP, and can't find any > reason why that line should be problematic. > > Any suggestions would be lovely. > > PS: I've looked around for documentation on PHP's internals, but I can't > find any sort of class or function reference. Did I miss something obvious? > > Thanks! > > --->Ben > > --- > This email has been checked for viruses by Avast antivirus software. > https://www.avast.com/antivirus > > > -- > PECL development discussion Mailing List (http://pecl.php.net/) > To unsubscribe, visit: http://www.php.net/unsub.php > >

« previous php.pecl.dev (#13468) next »