Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
[script] Accept "#!gpxe" as well as "#!ipxe" as a script magic marker
Signed-off-by: Michael Brown <mcb30@ipxe.org>
  • Loading branch information
mcb30 committed May 21, 2010
1 parent dc8eb04 commit 13dfe2c
Showing 1 changed file with 9 additions and 4 deletions.
13 changes: 9 additions & 4 deletions src/image/script.c
Expand Up @@ -91,8 +91,12 @@ static int script_exec ( struct image *image ) {
* @ret rc Return status code
*/
static int script_load ( struct image *image ) {
static const char magic[] = "#!ipxe";
char test[ sizeof ( magic ) - 1 /* NUL */ + 1 /* terminating space */];
static const char ipxe_magic[] = "#!ipxe";
static const char gpxe_magic[] = "#!gpxe";
linker_assert ( sizeof ( ipxe_magic ) == sizeof ( gpxe_magic ),
magic_size_mismatch );
char test[ sizeof ( ipxe_magic ) - 1 /* NUL */
+ 1 /* terminating space */];

/* Sanity check */
if ( image->len < sizeof ( test ) ) {
Expand All @@ -102,8 +106,9 @@ static int script_load ( struct image *image ) {

/* Check for magic signature */
copy_from_user ( test, image->data, 0, sizeof ( test ) );
if ( ( memcmp ( test, magic, ( sizeof ( test ) - 1 ) ) != 0 ) ||
! isspace ( test[ sizeof ( test ) - 1 ] ) ) {
if ( ! ( ( ( memcmp ( test, ipxe_magic, sizeof ( test ) - 1 ) == 0 ) ||
( memcmp ( test, gpxe_magic, sizeof ( test ) - 1 ) == 0 )) &&
isspace ( test[ sizeof ( test ) - 1 ] ) ) ) {
DBG ( "Invalid magic signature\n" );
return -ENOEXEC;
}
Expand Down

0 comments on commit 13dfe2c

Please sign in to comment.