{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":259370470,"defaultBranch":"master","name":"dunst","ownerLogin":"cdown","currentUserCanPush":false,"isFork":true,"isEmpty":false,"createdAt":"2020-04-27T15:19:23.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/660663?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1708710207.0","currentOid":""},"activityList":{"items":[{"before":"df2c1a85ee5c4c8f6bab069152e57a5643bc6e9f","after":"3c069465c40d71edb47289a948f902b6e79114b0","ref":"refs/heads/cdown/2024-02-23/xlib_why","pushedAt":"2024-02-23T17:51:19.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"cdown","name":"Chris Down","path":"/cdown","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/660663?s=80&v=4"},"commit":{"message":"x11: Prevent memory corruption in XrmSetDatabase\n\nDespite what the XrmSetDatabase docs say, it may try to free the\ndatabase, resulting in memory corruption. Prevent that by making sure it\nhas no db to act on. If it's past the first run, we will have done\nXrmDestroyDatabase above anyway. This causes a segfault, reported in\nissue #1256.\n\nFrom the XrmSetDatabase man page:\n\n> The database previously associated with the display (if any) is not\n> destroyed.\n\nBut this is patently false, from the source in Xlib's src/Xrm.c:\n\n void XrmSetDatabase(\n Display *display,\n XrmDatabase database)\n {\n LockDisplay(display);\n /* destroy database if set up implicitly by XGetDefault() */\n if (display->db && (display->flags & XlibDisplayDfltRMDB)) {\n XrmDestroyDatabase(display->db);\n display->flags &= ~XlibDisplayDfltRMDB;\n }\n display->db = database;\n UnlockDisplay(display);\n }\n\nThis is broken in Xlib since at least 2004[0], so now it's unfortunately\na backwards compatibility issue...\n\nFixes #1256.\n\n0: https://lists.freedesktop.org/archives/xorg-commit-diffs/2004-March/000239.html","shortMessageHtmlLink":"x11: Prevent memory corruption in XrmSetDatabase"}},{"before":null,"after":"df2c1a85ee5c4c8f6bab069152e57a5643bc6e9f","ref":"refs/heads/cdown/2024-02-23/xlib_why","pushedAt":"2024-02-23T17:43:27.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"cdown","name":"Chris Down","path":"/cdown","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/660663?s=80&v=4"},"commit":{"message":"x: Prevent memory corruption in XrmSetDatabase\n\nDespite what XrmSetDatabase docs say, it may try to free the database,\nresulting in memory corruption. Prevent that by making sure it has no db\nto act on. If it's past the first run, we will have done\nXrmDestroyDatabase above anyway.\n\nThis is broken since at least 2004, so now it's unfortunately backwards\ncompatible...\n\nSee https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=611232 for some\ndiscussion from many years ago.\n\nFixes #1256.","shortMessageHtmlLink":"x: Prevent memory corruption in XrmSetDatabase"}}],"hasNextPage":false,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEA11-iwA","startCursor":null,"endCursor":null}},"title":"Activity ยท cdown/dunst"}