Coder Social home page Coder Social logo

luminarimud / luminari-source Goto Github PK

View Code? Open in Web Editor NEW
45.0 15.0 23.0 20.27 MB

Current Source Code for LuminariMUD - A Pathfinder/D20 Multi User Dungeon

Home Page: https://luminarimud.com/

License: Other

Makefile 0.07% C 96.51% C++ 2.60% Shell 0.04% PHP 0.45% Roff 0.34%
pathfinder-rpg rpg-game d20 multi-user-dungeon pathfinder-game dungeons-and-dragons open-source free-game d20-rpg d20-game

luminari-source's Introduction

luminari-source

Source Code for LuminariMUD

The actual README and other documentation included in the original tbaMUD/CircleMUD packaging can be found here: https://github.com/LuminariMUD/LuminariMUD/tree/master/doc

Join us on DISCORD: https://discord.gg/Me3Tuu4


Vision

Initial Vision: To create a MUD, influenced by Pathfinder/d20/DnD3.5 rules in mechanics, integrating the code-bases: TBA/CWG/d20. With an original world inspired by the Bible, Dragonlance and Forgotten Realms stories. Above all, to build a safe and friendly community of like-minded gamers to socialize and advance characters in.

A Note from the Lead Designer/Coder and Owner of LuminariMUD I’ve been a player/coder and builder in the MUD community for many years. Some basic demanding traits are required to endure. Commitment first and foremost, goal-oriented and self-motivated staff is vital as well. Also critical is the ability to make sacrifices – for whatever reason that drives the individual, you have to be able to work through the bad times which can often outnumber the good times. You have to, if you are a leader, lead by example. If you are under someone else’s leadership, prove yourself to be an asset and work hard. Creating a MUD is not a heavily rewarding experience. You can spend tens, hundreds even thousands of hours working on it just to get a small player-base that complains all the time. The only real appeal is that the work itself is rewarding. If you can adapt that attitude, then you can have a successful experience regardless of the outcome. As the lead on this project, I’m committed to the initial vision – and I’m committed to hard work. Hopefully together we can make this project a success.

Luminari Staff Positions:

Website: Website Designer/Manager (Blog) Staff/Senior Staff Website Designer/Manager (Forum) Staff/Senior Staff

Helpfiles: Help File Lead Staff/Senior Staff Help File Creator/Editor(s) Staff/Senior Staff

World and Lore: Lead World Design Forger Lead Lore Design Forger Lead Scripter Forger Quest Designer(s) Staff/Senior Staff Builder(s) Staff/Senior Staff

Code, Mechanics Designer: Lead Programmer Forger Lead Game Designer Forger Programmer(s) Staff/Senior Staff

Game Administration: Lead Administrator Forger Administrator(s) Staff/Senior Staff Recruiter / 101 Senior Staff / Forger

Staff Position Description

Website Designer/Manager (Blog) Responsibilities: To create, design and manage all content of the blog aspect of the website. Content will be at the very least minimum weekly updates of code changes. Limitations: Maintenance of the Web Forum

Website Designer/Manager (Forum) Responsibilities:
To create, design and manage all content of the forum aspect of the website. Content includes all community discussion, and will require maintenance, organization of content, and other responsibilities. Limitations: Maintenance of the Web Blog

Help File Lead: Responsibilities:
To organize a system for keyword content of help files. Organizing and designing the primary ‘HELP’ command formatting. Add help files as needed. Needs to be in good communication with programmers on understanding the content that gets added to the game. Limitations: No building responsibilities

Help File Creator/Editor(s) Responsibilities:
Adding help-file content for any conceivable topic that would assist player in navigating the MUD Limitations:

Lead World Design (Head Builder) Responsibilities: Design maps and layout of lands, attach zones in appropriate areas. Establish building-standards, rules and stylistics. In charge of making sure world creation meets goals in a timely manner. Assist new builders in building and scripting. Limitations: Expected to create the world with the tools provided and to maintain the TBA codebase standards for building techniques.

Lead Lore Design Responsibilities:
Designs all aspects within the realm of game-lore. Including stories, world background information, world-inhabitants relationship, etc. Limitations: Creating lore that isn’t consistent with the base rules of content: There is only one true G-d in Luminari lore. Also to stay within the realm of reasonable Dungeons-and-Dragons content.

Quest Designer(s) Responsibilities:
Take leadership in making sure quests are consistent in rewards and that they match with the Lore content. Limitations: Creating ALL the quest content, the responsibility lies on the builders

Recruiter / 101 Responsibilities: To be liaison in the MUDding community forums. To actively post recruiting messages to the MUDding community, but not be obnoxious about it. To help start off new staff members and ease the heavy training load of Lead Builder.
Limitations: For building aspects of the job, under jurisdiction of Lead Builder

Builder(s) Responsibilities: To create the world, scripts and quests for players to explore. Limitations: Under jurisdiction of Lead Builder

Lead Scripter Responsibilities: To create universal scripts for the builders to use, to help support and answer questions about scripts Limitations:

Lead Programmer Responsibilities: Divide amongst the coders work-load. Oversee consistency in code-content that enters the Subversion control. Manage backups and SVN content. Makes final decisions on technique for implementation and coding-standards. Limitations: Authority limited to code

Lead Game Designer Responsibilities:
Decide game rules for in-game systems and mechanics. Overall vision for project direction. Management of project to achieve goals in timely manner. Limitations: Authority doesn’t include building-standards, lore or deciding coding technique. Also not an administrator.

Programmer(s) Responsibilities:
Implement game mechanics. Limitations: Answers to Lead-Programmer, authority limited to code.

Lead Administrator Responsibilities:
Lead management of administrators. Maintain peace between staff and players, implement rules-of-conduct for player and staff behaviour. Limitations: The rules of behaviour have to be consistent with Judeo-Christian ideals: Do not do unto others that you don’t want done to yourself.

Administrator(s) Responsibilities: Assist in enforcement of conduct rules between players and players, staff and staff. Invest time and patience in new players (newbies). Limitations: Under management of Lead Administrator

General Guidelines of Staff Conduct (The Luminari Constitution)

Initial ideas for the world are: -Worldmap for navigation between zones -Allows for expansion of system including vehicles, etc -Heavily quest and story orientated progression -Keeps players involved to see advancement of a story -Heavy usage of scripting to create a “living and breathing” world -Stock zones can only be kept if redesigned -Keeps content high -Keeps mud-stats high -Allows some familiar zones for those who have affectionate memories of some of the stock zones ** We can take out zones as they get replaced with new ones if the lead builder desires -The goals for Beta in mechanics and code have already been established. The allowance for change in direction is limited due to time-related goals. After Beta, major changes in system CAN be considered. -Very simple to understand the mechanic goals: view any Pathfinder/d20/DnD3.5 rules website to get the idea -The lead designer is choosing what to implement and what not to implement based on --Ease --Past experience on what systems work --Fun-factor -Ideas coming from the staff should be well thought out to avoid clutter. If you have a lot of ideas, it’s best to start a Forum-Topic and post them under your topic, then go to town -Bugs and Typos do NOT need to be thought out at all, if you even slightly think something is a Bug/Typo, do not be afraid to report it -Builders or Builder’s Leadership should NOT try and change the standards and system established by TBA – that would destroy our primary community of potential builders. --One of the big advantages of using TBA codebase is the active community -It’s OK to discuss with other leadership ideas in their field of leadership, but remember whose field of leadership it is… and AVOID arguing if that leadership makes a decision; examples: -If you are the Lead Designer or Lead Builder, don’t try to trump the Lead Admin (for example in establishment of in-game player-to-player rules) -If you are the Lead Designer or Lead Admin, don’t submit lore or content that isn’t consistent with the Lead Builder/Lore -If you are the Lead Builder/Admin, don’t try to insist on game mechanics or design of OLC interface, etc -Try to be at least a little respectful and sensitive to any individuals who are committing a lot more of their effort/work into the MUD -Do NOT take other’s time for granted, if you ask a coder to do something that takes 10 hours of his time, you should be prepared to do that much work in return for the coder -Although the Lead-Designer does tend to heavily implement ideas submitted by the community, the default expectation is quite simple: we do NOT customize the MUD to individual preferences.

Conflict of Interest (Leaders Only) -You can NOT hold a position of leadership in Luminari if you are committed more or equally to another MUD. This includes, but is not limited to, being the leader of a very active guild on another MUD. -You can NOT hold a position of leadership in Luminari if you are in any sort of conflicting relationship with any other game as per discretion of the Lead Administrator

Minimal Log-In Time (All Staff) -6 weeks on inactivity with no contact can result in demotion

Minimal Knowledge (Leaders Only) -How can one lead a MUD they know nothing about? -All Leaders are required to be familiar with all base races/classes and MUD lore -Leadership positions individuals are expected to lead by example -Life comes first, but if you can’t handle the responsibilities and time investment of leadership, you should try to find a replacement -If you can’t invest minimal amount of time to work on the MUD as a leader, you will be politely placed in a non-leadership role

Leadership Positions MINIMUM Required Work: -Building: 3 “things” per week, see Lead Builder for details -Admin: X hours of active time on the MUD, see Lead Admin

ANYONE has a right to request the code

ANYONE can request a copy of their zone at any time, but see the on-line DISCLAIMER help file for details on the MUD’s rights with the builders zones

REMEMBER: Ultimately, if push comes to shove, the lead does have a right to trump decisions that aren’t in-line with the initial vision. Or if he knows the idea to be ineffective based on past MUDding experience.

luminari-source's People

Contributors

biscuitwizard avatar bobsson avatar gickerlds avatar malkleth avatar melvinzhang avatar moshehbenavraham avatar rabidt avatar rrebrick avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

luminari-source's Issues

close_socket double free or corruption [May 2 09:42]

May  2 09:42:05 :: Bad PW: Zackery [73.53.22.127]
May  2 09:42:06 :: Bad PW: Zackery [73.53.22.127]
SYSERR: Write to socket: Broken pipe
May  2 09:42:09 :: Losing descriptor without char.
May  2 09:42:09 :: Losing descriptor without char.
*** Error in `circle': double free or corruption (out): 0x000000000f457360 ***
Program terminated with signal 6, Aborted.
#0  0x00007f72f8a55a98 in raise () from /lib64/libc.so.6
Missing separate debuginfos, use: debuginfo-install MariaDB-shared-10.1.44-1.el7.centos.x86_64 bzip2-libs-1.0.6-13.el7.x86_64 expat-2.1.0-10.el7_3.x86_64 fontconfig-2.13.0-4.3.el7.x86_64 freetype-2.8-14.el7.x86_64 gd-2.0.35-26.el7.x86_64 glibc-2.22-3.fc23.x86_64 keyutils-libs-1.5.8-3.el7.x86_64 krb5-libs-1.15.1-37.el7_7.2.x86_64 libX11-1.6.7-2.el7.x86_64 libXau-1.0.8-2.1.el7.x86_64 libXpm-3.5.12-1.el7.x86_64 libcom_err-1.42.9-16.el7.x86_64 libgcc-5.1.1-4.fc23.x86_64 libjpeg-turbo-1.2.90-8.el7.x86_64 libpng-1.5.13-7.el7_2.x86_64 libselinux-2.5-14.1.el7.x86_64 libstdc++-5.1.1-4.fc23.x86_64 libuuid-2.23.2-61.el7_7.1.x86_64 libxcb-1.13-1.el7.x86_64 nss-softokn-freebl-3.44.0-8.el7_7.x86_64 openssl-libs-1.0.2k-19.el7.x86_64 pcre-8.32-17.el7.x86_64 zlib-1.2.8-9.fc23.x86_64
(gdb) bt
#0  0x00007f72f8a55a98 in raise () from /lib64/libc.so.6
#1  0x00007f72f8a5769a in abort () from /lib64/libc.so.6
#2  0x00007f72f8a98e1a in __libc_message () from /lib64/libc.so.6
#3  0x00007f72f8aa141a in _int_free () from /lib64/libc.so.6
#4  0x00007f72f8aa4bcc in free () from /lib64/libc.so.6
#5  0x0000000000573c66 in close_socket (d=0x12d45e60) at comm.c:2846
#6  0x0000000000576d96 in game_loop (local_mother_desc=3) at comm.c:1022
#7  0x0000000000404b2a in init_game (local_port=<optimized out>) at comm.c:587
#8  main (argc=<optimized out>, argv=<optimized out>) at comm.c:392
(gdb) f 5
#5  0x0000000000573c66 in close_socket (d=0x12d45e60) at comm.c:2846
warning: Source file is more recent than executable.
2846            free(d->history[cnt]);
(gdb) l
2841      if (d->history)
2842      {
2843        int cnt;
2844        for (cnt = 0; cnt < HISTORY_SIZE; cnt++)
2845          if (d->history[cnt])
2846            free(d->history[cnt]);
2847        free(d->history);
2848      }
2849
2850      if (d->showstr_head)

Compiling Ubuntu on WSL2 on Windows 10

I am using Windows 10 and installed Ubuntu using wsl.
And, I installed gcc, make, and mysql.
I installed VS Code on Windows 10.

Can I get a step-by-step manual for compiling Luminari-Source in this environment?

format overflows in prefedit.c

prefedit.c: In function \u2018prefedit_disp_prompt_menu.isra.2\u2019:
prefedit.c:341:43: warning: \u2018%s\u2019 directive writing up to 3 bytes into a region of size between 1 and 16 [-Wformat-overflow=]
     sprintf(prompt_string, "%s%s%s%s%s%s%s%s",
                                           ^~
In file included from /usr/include/stdio.h:862:0,
                 from sysdep.h:69,
                 from prefedit.c:13:
/usr/include/x86_64-linux-gnu/bits/stdio2.h:33:10: note: \u2018__builtin___sprintf_chk\u2019 output between 1 and 19 bytes into a destination of size 16
   return __builtin___sprintf_chk (__s, __USE_FORTIFY_LEVEL - 1,
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
       __bos (__s), __fmt, __va_arg_pack ());
       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
prefedit.c: In function \u2018prefedit_disp_main_menu.isra.3\u2019:
prefedit.c:116:37: warning: \u2018%s\u2019 directive writing up to 3 bytes into a region of size between 1 and 10 [-Wformat-overflow=]
   sprintf(prompt_string, "%s%s%s%s%s%s%s%s",
                                     ^~
In file included from /usr/include/stdio.h:862:0,
                 from sysdep.h:69,
                 from prefedit.c:13:
/usr/include/x86_64-linux-gnu/bits/stdio2.h:33:10: note: \u2018__builtin___sprintf_chk\u2019 output between 1 and 19 bytes into a destination of size 10
   return __builtin___sprintf_chk (__s, __USE_FORTIFY_LEVEL - 1,
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
       __bos (__s), __fmt, __va_arg_pack ());
       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

format overflow in player_owned_shops

spec_procs.c:1403:47: warning: \u2018Invalid Shop - Tell an Imp\u2019 directive writing 26 bytes into a region of size 21 [-Wformat-overflow=]
sprintf(shop_owner, "Invalid Shop - Tell an Imp");

How do I compile for testing?

I am studying C language by compiling TbaMud in MSVC 2019.

I accidentally found this mud source and tried to compile it, but an error occurred and was unsuccessful.
My test environment is Windows 10 and I can compile MSVC and GCC.

free_char double free or corruption crash [Apr 28 00:10]

Binary built at commit d095ae6

syslog

Apr 28 00:10:09 :: SYSERR: NULL object (0x231a8a50) or same source (0x231a8a50) and target ((nil)) obj passed to obj_to_obj.
*** Error in `circle': double free or corruption (!prev): 0x00000000067575d0 ***
======= Backtrace: =========
/lib64/libc.so.6(+0x77e15)[0x7f7ee4190e15]
/lib64/libc.so.6(+0x8041a)[0x7f7ee419941a]
/lib64/libc.so.6(cfree+0x4c)[0x7f7ee419cbcc]
circle[0x4b071d]
circle[0x581e03]
circle[0x403aea]
/lib64/libc.so.6(__libc_start_main+0xf0)[0x7f7ee4139580]
circle[0x403fc9]

GDB bt

Core was generated by `circle -C3 4100'.
Program terminated with signal 6, Aborted.
#0  0x00007f7ee414da98 in raise () from /lib64/libc.so.6
Missing separate debuginfos, use: debuginfo-install MariaDB-shared-10.1.44-1.el7.centos.x86_64 bzip2-libs-1.0.6-13.el7.x86_64 expat-2.1.0-10.el7_3.x86_64 fontconfig-2.13.0-4.3.el7.x86_64 freetype-2.8-14.el7.x86_64 gd-2.0.35-26.el7.x86_64 glibc-2.22-3.fc23.x86_64 keyutils-libs-1.5.8-3.el7.x86_64 krb5-libs-1.15.1-37.el7_7.2.x86_64 libX11-1.6.7-2.el7.x86_64 libXau-1.0.8-2.1.el7.x86_64 libXpm-3.5.12-1.el7.x86_64 libcom_err-1.42.9-16.el7.x86_64 libgcc-5.1.1-4.fc23.x86_64 libjpeg-turbo-1.2.90-8.el7.x86_64 libpng-1.5.13-7.el7_2.x86_64 libselinux-2.5-14.1.el7.x86_64 libstdc++-5.1.1-4.fc23.x86_64 libuuid-2.23.2-61.el7_7.1.x86_64 libxcb-1.13-1.el7.x86_64 nss-softokn-freebl-3.44.0-8.el7_7.x86_64 openssl-libs-1.0.2k-19.el7.x86_64 pcre-8.32-17.el7.x86_64 zlib-1.2.8-9.fc23.x86_64
(gdb) bt
#0  0x00007f7ee414da98 in raise () from /lib64/libc.so.6
#1  0x00007f7ee414f69a in abort () from /lib64/libc.so.6
#2  0x00007f7ee4190e1a in __libc_message () from /lib64/libc.so.6
#3  0x00007f7ee419941a in _int_free () from /lib64/libc.so.6
#4  0x00007f7ee419cbcc in free () from /lib64/libc.so.6
#5  0x0000000000601c61 in free_char (ch=<optimized out>) at db.c:4877
#6  0x00000000004b064c in extract_char_final (ch=<optimized out>) at handler.c:2088
#7  0x00000000004b071d in extract_pending_chars () at handler.c:2151
#8  0x000000000058113e in heartbeat (heart_pulse=<optimized out>) at comm.c:1172
#9  0x0000000000581e03 in game_loop (local_mother_desc=3) at comm.c:1031
#10 0x0000000000403aea in init_game (local_port=<optimized out>) at comm.c:580
#11 main (argc=<optimized out>, argv=<optimized out>) at comm.c:385

format-security warnings

Seeing many of these warnings due to using a non-literal string as 2nd argument to send_to_char.

It's important to resolve these since if somehow the non-literal string has format specifiers, bad stuff can happen.

Simple resolution would be to use "%s" as the format arg and pass the current format arg after that.

Otherwise it may be useful to have separate send_to_char and sendf_to_char functions in the future.

prefedit.c format-overflow warning

prefedit.c:116:37: warning: \u2018%s\u2019 directive writing up to 3 bytes into a region of size between 1 and 10 [-Wformat-overflow=]
sprintf(prompt_string, "%s%s%s%s%s%s%s%s",
^~

add TLS encryption

Is your feature request related to a problem? Please describe.
It seems like connection to Luminari on 4100 is not encrypted. Meaning credentials can be sniffed out because they are sent in cleartext.

Describe the solution you'd like
IRC servers tend to provide at least 2 ports: one for encrypted (TLS) and one for unencrypted (for compatibility) connection.
Note that Mudlet does support tls (most probably some others do support too) so there is no problem on the client side.
One can add TLS support to the server via, for example, openssl or libressl libs

Describe alternatives you've considered
Alternatives:

  1. Have in-protocol encryption.
    --- prone to errors
    --- needs a new protocol ( or any examples of in-protocol encryption for MUDs?) and hence, client changes.
  2. Have one TLS port exclusively (no uncencrypted connections allowed).
    +++ protects the whole community
    +++ does not require handling 2 ports
    --- may break compatibility with more simplistic clients(?)
  3. Be accessible as an onion service (in addition to clearnet)
    +++ no change to codebase
    +++ strongest guarantees for privacy-minded (but also for hackers)
    --- somewhat harder administration
    --- less accessible for non-tor-users -> minimal benefit for average security

several "'return' with no value" warnings in alchemy.c

alchemy.c: In function \u2018num_of_bombs_preparable\u2019:
alchemy.c:336:5: warning: \u2018return\u2019 with no value, in function returning non-void
     return;
     ^~~~~~
alchemy.c:332:5: note: declared here
 int num_of_bombs_preparable(struct char_data *ch)
     ^~~~~~~~~~~~~~~~~~~~~~~
alchemy.c: In function \u2018num_of_bombs_prepared\u2019:
alchemy.c:351:5: warning: \u2018return\u2019 with no value, in function returning non-void
     return;
     ^~~~~~
alchemy.c:347:5: note: declared here
 int num_of_bombs_prepared(struct char_data *ch)
     ^~~~~~~~~~~~~~~~~~~~~
alchemy.c: In function \u2018find_open_bomb_slot\u2019:
alchemy.c:469:5: warning: \u2018return\u2019 with no value, in function returning non-void
     return;
     ^~~~~~
alchemy.c:465:5: note: declared here
 int find_open_bomb_slot(struct char_data *ch)
     ^~~~~~~~~~~~~~~~~~~
alchemy.c: In function \u2018can_learn_discovery\u2019:
alchemy.c:1646:5: warning: \u2018return\u2019 with no value, in function returning non-void
     return;
     ^~~~~~
alchemy.c:1642:5: note: declared here
 int can_learn_discovery(struct char_data *ch, int discovery)
     ^~~~~~~~~~~~~~~~~~~
alchemy.c: In function \u2018num_alchemical_discoveries_known\u2019:
alchemy.c:1756:5: warning: \u2018return\u2019 with no value, in function returning non-void
     return;
     ^~~~~~
alchemy.c:1752:5: note: declared here
 int num_alchemical_discoveries_known(struct char_data *ch)
     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
alchemy.c: In function \u2018list_alchemical_discoveries\u2019:
alchemy.c:1813:5: warning: \u2018return\u2019 with no value, in function returning non-void
     return;
     ^~~~~~
alchemy.c:1809:5: note: declared here
 int list_alchemical_discoveries(struct char_data *ch)
     ^~~~~~~~~~~~~~~~~~~~~~~~~~~
alchemy.c: In function \u2018can_swallow\u2019:
alchemy.c:2022:5: warning: \u2018return\u2019 with no value, in function returning non-void
     return;
     ^~~~~~
In file included from alchemy.c:7:0:
alchemy.c:2018:11: note: declared here
 ACMDCHECK(can_swallow)
           ^
utils.h:44:7: note: in definition of macro \u2018ACMDCHECK\u2019
   int name(struct char_data *ch, bool show_error)
       ^~~~
alchemy.c: In function \u2018display_discovery_info\u2019:
alchemy.c:3070:5: warning: \u2018return\u2019 with no value, in function returning non-void
     return;
     ^~~~~~
alchemy.c:3066:6: note: declared here
 bool display_discovery_info(struct char_data *ch, char *discoveryname)
      ^~~~~~~~~~~~~~~~~~~~~~
alchemy.c: In function \u2018display_grand_discovery_info\u2019:
alchemy.c:3157:5: warning: \u2018return\u2019 with no value, in function returning non-void
     return;
     ^~~~~~
alchemy.c:3153:6: note: declared here
 bool display_grand_discovery_info(struct char_data *ch, char *discoveryname)
      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
alchemy.c: In function \u2018display_bomb_types\u2019:
alchemy.c:3207:5: warning: \u2018return\u2019 with no value, in function returning non-void
     return;
     ^~~~~~
alchemy.c:3203:6: note: declared here
 bool display_bomb_types(struct char_data *ch, char *keyword)
      ^~~~~~~~~~~~~~~~~~
alchemy.c: In function \u2018display_discovery_types\u2019:
alchemy.c:3244:5: warning: \u2018return\u2019 with no value, in function returning non-void
     return;
     ^~~~~~
alchemy.c:3240:6: note: declared here
 bool display_discovery_types(struct char_data *ch, char *keyword)

free_mobile double free or corruption crash [May 5 01:32]

running on binary built at ba3294a

syslog

May  5 01:32:00 :: Naul has quit the game.
May  5 01:32:03 :: SYSERR: Mob using '((vict)->player_specials->saved.pref)' at act.offensive.c:2362.
May  5 01:32:31 :: SYSERR: Mob using '((vict)->player_specials->saved.pref)' at act.offensive.c:2362.
May  5 01:32:44 :: WARNING: EOF on socket read (connection broken by peer)
May  5 01:32:44 :: Closing link to: Thazull.
*** Error in `bin/circle': free(): invalid pointer: 0x00007f3932231b10 ***

gdb

Program terminated with signal 6, Aborted.
#0  0x00007f393a815a98 in raise () from /lib64/libc.so.6
Missing separate debuginfos, use: debuginfo-install MariaDB-shared-10.1.44-1.el7.centos.x86_64 bzip2-libs-1.0.6-13.el7.x86_64 expat-2.1.0-10.el7_3.x86_64 fontconfig-2.13.0-4.3.el7.x86_64 freetype-2.8-14.el7.x86_64 gd-2.0.35-26.el7.x86_64 glibc-2.22-3.fc23.x86_64 keyutils-libs-1.5.8-3.el7.x86_64 krb5-libs-1.15.1-37.el7_7.2.x86_64 libX11-1.6.7-2.el7.x86_64 libXau-1.0.8-2.1.el7.x86_64 libXpm-3.5.12-1.el7.x86_64 libcom_err-1.42.9-16.el7.x86_64 libgcc-5.1.1-4.fc23.x86_64 libjpeg-turbo-1.2.90-8.el7.x86_64 libpng-1.5.13-7.el7_2.x86_64 libselinux-2.5-14.1.el7.x86_64 libstdc++-5.1.1-4.fc23.x86_64 libuuid-2.23.2-61.el7_7.1.x86_64 libxcb-1.13-1.el7.x86_64 nss-softokn-freebl-3.44.0-8.el7_7.x86_64 openssl-libs-1.0.2k-19.el7.x86_64 pcre-8.32-17.el7.x86_64 zlib-1.2.8-9.fc23.x86_64
(gdb) bt
#0  0x00007f393a815a98 in raise () from /lib64/libc.so.6
#1  0x00007f393a81769a in abort () from /lib64/libc.so.6
#2  0x00007f393a858e1a in __libc_message () from /lib64/libc.so.6
#3  0x00007f393a86141a in _int_free () from /lib64/libc.so.6
#4  0x00007f393a864bcc in free () from /lib64/libc.so.6
#5  0x000000000062b880 in free_mobile (mob=0x7f3932231b10) at genmob.c:347
#6  0x0000000000594640 in cleanup_olc (d=d@entry=0x5b2fba20, cleanup_type=cleanup_type@entry=1 '\001') at oasis.c:127
#7  0x0000000000554d0d in close_socket (d=0x5b2fba20) at comm.c:2884
#8  0x00000000005575b7 in game_loop (local_mother_desc=3) at comm.c:945
#9  0x0000000000404a3a in init_game (local_port=<optimized out>) at comm.c:587
#10 main (argc=<optimized out>, argv=<optimized out>) at comm.c:392
(gdb) f 5
#5  0x000000000062b880 in free_mobile (mob=0x7f3932231b10) at genmob.c:347
347     genmob.c: No such file or directory.
(gdb) print mob->player.name
$1 = 0x37f7280 "fullstaff man agent"
(gdb)
(gdb) print luminari_build
$2 = 0x6f47a8 "Make time: Mon May  4 10:18:55 WEST 2020\r\nMake user: zusuk\r\nMake host: luminari.vineyard.haus\r\nBranch: * master\r\nParent: ba3294a22488d06ed74de8bef3d24e0f52a3d0ab\r\n"

script do_order crash [Apr 27 03:36]

Apr 27 03:36:42 :: LOG: EVENT_REGION case in EVENTFUNC(event_countdown): Region VNum 1000012, RNum 11
Apr 27 03:36:42 :: Encounter Region 'The Mosswood - Encounter' with vnum: 1000012 reset.
Apr 27 03:36:42 :: LOG: Processing encounter room vnum: 1000126
Apr 27 03:36:42 :: LOG: Processing encounter room vnum: 1000127
Apr 27 03:36:42 :: LOG: Processing encounter room vnum: 1000128
Apr 27 03:36:42 :: LOG: Processing encounter room vnum: 1000129

Program terminated with signal 11, Segmentation fault.
#0  0x00000000005b2c9d in do_order (ch=0x6707d30, argument=<optimized out>, cmd=<optimized out>, subcmd=<optimized out>) at act.offensive.c:2508

warning: Source file is more recent than executable.
2508            if (IN_ROOM(ch) == IN_ROOM(k->follower))
Missing separate debuginfos, use: debuginfo-install MariaDB-shared-10.1.44-1.el7.centos.x86_64 bzip2-libs-1.0.6-13.el7.x86_64 expat-2.1.0-10.el7_3.x86_64 fontconfig-2.13.0-4.3.el7.x86_64 freetype-2.8-14.el7.x86_64 gd-2.0.35-26.el7.x86_64 glibc-2.22-3.fc23.x86_64 keyutils-libs-1.5.8-3.el7.x86_64 krb5-libs-1.15.1-37.el7_7.2.x86_64 libX11-1.6.7-2.el7.x86_64 libXau-1.0.8-2.1.el7.x86_64 libXpm-3.5.12-1.el7.x86_64 libcom_err-1.42.9-16.el7.x86_64 libgcc-5.1.1-4.fc23.x86_64 libjpeg-turbo-1.2.90-8.el7.x86_64 libpng-1.5.13-7.el7_2.x86_64 libselinux-2.5-14.1.el7.x86_64 libstdc++-5.1.1-4.fc23.x86_64 libuuid-2.23.2-61.el7_7.1.x86_64 libxcb-1.13-1.el7.x86_64 nss-softokn-freebl-3.44.0-8.el7_7.x86_64 openssl-libs-1.0.2k-19.el7.x86_64 pcre-8.32-17.el7.x86_64 zlib-1.2.8-9.fc23.x86_64
(gdb) bt
#0  0x00000000005b2c9d in do_order (ch=0x6707d30, argument=<optimized out>, cmd=<optimized out>, subcmd=<optimized out>) at act.offensive.c:2508
#1  0x0000000000559e8a in command_interpreter (ch=ch@entry=0x6707d30, argument=argument@entry=0x7ffee8ce5290 "order followers kill Glyvar")
    at interpreter.c:1012
#2  0x0000000000631cb4 in script_driver (go_adress=go_adress@entry=0x7ffee8ce60d8, trig=trig@entry=0x67091d0, type=type@entry=0,
    mode=mode@entry=1) at dg_scripts.c:2979
#3  0x0000000000632ae3 in trig_wait_event (event_obj=<optimized out>) at dg_scripts.c:829
#4  0x000000000056c6ac in event_process () at dg_event.c:131
#5  0x00000000005772d1 in heartbeat (heart_pulse=669688) at comm.c:1085
#6  0x0000000000578163 in game_loop (local_mother_desc=3) at comm.c:1031
#7  0x0000000000403afa in init_game (local_port=<optimized out>) at comm.c:580
#8  main (argc=<optimized out>, argv=<optimized out>) at comm.c:385
(gdb) print ch->player.name
$1 = 0x4a72260 "master summoner"
(gdb) l
2503          snprintf(buf, sizeof(buf), "$n issues the order '%s'.", message);
2504          act(buf, FALSE, ch, 0, 0, TO_ROOM);
2505
2506          for (k = ch->followers; k; k = k->next)
2507          {
2508            if (IN_ROOM(ch) == IN_ROOM(k->follower))
2509              if (AFF_FLAGGED(k->follower, AFF_CHARM))
2510              {
2511                found = TRUE;
2512                command_interpreter(k->follower, message);
(gdb) print ch->followers
$2 = (struct follow_type *) 0x0
(gdb) print message
$6 = "kill Glyvar", '\000' <repeats 469 times>...
(gdb) print *k
$7 = {follower = 0x30, next = 0x21}
(gdb) print ch->player
$8 = {passwd = '\000' <repeats 30 times>, name = 0x4a72260 "master summoner", short_descr = 0x4a72280 "the master summoner",
  long_descr = 0x4a722a0 "The master summoner is standing between the torches grinning wildly at you.\r\n",
  description = 0x4a72300 "The air movement in the room is making the summoner's white cloak flutter and\r\nflow.  He stands at the average human height but appears to be slightly\r\nunderweight.  Runes are glowing from the backsid"..., title = 0x0, sex = 1 '\001', chclass = 0 '\000',
  level = 5 '\005', time = {birth = 1587888039, logon = 1587888039, played = 0}, weight = 200 '\310', height = 198 '\306', race = 1 '\001',
  pc_subrace = 0 '\000', walkin = 0x0, walkout = 0x0}
(gdb) print ch->nr
$9 = 1226

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.